2016-02-12 27 views
0

代碼:無法解析00秒8 API

LocalDateTime ldt3 = getUtcDateTime("2016-02-01T10:11:00Z"); 
System.out.println(ldt3); 

輸出:

2016-02-01T10:11 

所需的輸出:

2016-02-01T10:11:00 

是否有可能得出這樣的結果?另外如何將UTC String值從LocalDateTime輸出爲零秒?

代碼:

LocalDateTime localDateTime = getCurrentUtcDateTime(); 
ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.of("Z")); 
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssXXX"); 
ZonedDateTime.parse(zonedDateTime.format(formatter), formatter) 
       .toString(); 

輸出:

2016-02-12T12:12Z 

所需的輸出:

2016-02-12T12:12:00Z 

如何獲得在兩種情況下需要的輸出?

+2

我不明白你的問題。你想做什麼?你想打印'2016-02-01T10:11:00'嗎?如果是這樣,爲什麼你要重新格式化並不打印格式化的字符串? – Tunaki

+1

請參閱本指南https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html –

回答

2

您應該使用DateTimeFormatter打印出您的輸出,而不是再次重新分析。 A LocalDateTime沒有系統來存儲它所創建的格式化程序。

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssXXX"); 
System.out.println(zonedDateTime.format(formatter)); 
+1

但是,OP真的想要什麼?顯然,他們知道如何做到這一點(因爲他們在這個問題上)。 – Tunaki

+2

從我可以讀取,該操作繼續回落到使用'.toString()',而不是意識到他需要輸出格式化輸出 – Ferrybig

+0

@Ferrybig - 謝謝你看起來像我在最後一行 – Viraj