2016-09-16 56 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);