2016-09-16 48 views
0

20160222082641Z如何使用Java生成此时间戳

这种时间戳是使用某些LDAP功能记录的。我需要在Java程序中复制它。

我的团队成员无法告诉我该怎么做,或者真的给我提供任何有用的帮助。任何人都会熟悉如何在Java中生成这个?由于

+0

是格式化日期... –

+0

https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html –

+0

这将有助于您将时间戳解析到其组件中。我看到前四位数字可能是一年,但之后就不清楚这些字段是什么或意思。 – markspace

回答

1

使用的SimpleDateFormat:

SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss"); 
format.setTimeZone(TimeZone.getTimeZone("UTC")); 

String ldapDate = format.format(Calendar.getInstance().getTime()) + "Z"; 

System.out.println(ldapDate); 
+0

我认为他们希望UTC时间(Z),而不是当地时间。 – PEF

+0

这很容易克服,答案已被修改 – slambeth

+0

'new Date()'比使用Calendar获取当前日期和时间简洁得多。 – VGR

0

使用Java 8,需要以下进口:

import java.time.LocalDateTime; 
import static java.time.ZoneOffset.UTC; 

使用Java 8,下面的代码应该工作:

LocalDateTime now = LocalDateTime.now(UTC); 
    String timeString = now.toString(); 
    String strOut = timeString.substring(0,4) 
      + timeString.substring(5,7) + timeString.substring(8,10) 
      + timeString.substring(11,13) + timeString.substring(14,16) 
      + timeString.substring(17,19) + "Z"; 

    System.out.println(now); 
    System.out.println(strOut);