2015-05-19 63 views
1

我寫了一個測試直到測試許可證密鑰的有效性..並在同一時間,更新代碼以使用Java 8 java.time包。DateTimeFormatter格式化失敗

所以..創造一個「有效期至」日期時間和格式,爲的字符串:

LocalDateTime now = LocalDateTime.now(Clock.systemUTC()); 
LocalDateTime nowPlus1Hour = now.plusHours(1); 
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss z"); 
formatter = formatter.withZone(Clock.systemUTC().getZone()); 
String validUntilString = nowPlus1Hour.format(formatter); 

這個..大部分工作。 (我的最後一個版本拋出異常,因爲我沒有創建一個formatter'withZone'。)

但是,'validUntilString'的值是'2015-05-19 19:46:26 Z'真的。 'Z'。來吧!

因此..給定一個LocalDateTime,你如何得到一個字符串,包括(是的,ambigious,但在這種情況下UTC,一個標準)時區ID?

+1

Z是UTC的同義詞。你對我看起來很好。見http://www.timeanddate.com/time/zones/z和http://en.wikipedia.org/wiki/Coordinated_Universal_Time#Time_zones –

+0

好吧..現在我不覺得愚蠢。 – ticktock

+1

Z代表祖魯時間 – bowmore

回答

1

如說,在評論中,時區已經包含在你的字符串:

"2015-05-19 19:46:26 Z"

這封信Zmilitary - NATO convention

基礎來此爲Z - 祖魯時間 - 零子午線時間 - 與UTC相同這是一個將時間區域分配給字母的約定,其中Z =零子午線,Zulu是用於通信的字母Z。它有時在美國軍事和北約中與24小時鐘一起使用,並且在電影中也用於參考時間。

其他字母/字用於UTC相比其他時區.....

閱讀cited reference的全部細節。