我想將ZonedDateTime
轉換爲String
,格式爲("dd/MM/yyyy - hh:mm")
。我知道這是可能的Joda時間其他類型,只需使用他們的toString("dd/MM/yyyy - hh:mm")
....但這不適用於ZonedDateTime.toString()
。如何將ZonedDateTime格式化爲字符串?
如何將ZonedDateTime
格式化爲String
?
編輯:
我試圖打印時間在另一個時區,結果似乎是相同的總是:
ZonedDateTime date = ZonedDateTime.now();
ZoneId la = ZoneId.of("America/Los_Angeles");
ZonedDateTime date2 = date.of(date.toLocalDateTime(), la);
// 24/02/2017 - 04:53
System.out.println(DateTimeFormatter.ofPattern("dd/MM/yyyy - hh:mm").format(date));
// same result as the previous one
// 24/02/2017 - 04:53
System.out.println(DateTimeFormatter.ofPattern("dd/MM/yyyy - hh:mm").format(date2));
而且我不在同一個時區爲洛杉磯洛杉磯。
編輯2:
找到如何更改時區:
// Change this:
ZonedDateTime date2 = date.of(date.toLocalDateTime(), la); // incorrect!
// To this:
ZonedDateTime date2 = date.withZoneSameInstant(la);
您使用jdk8 java.time.ZonedDateTime? – reos
是的,我認爲是這樣的... – mFeinstein
使用ZonedDateTime類型的format()方法 –