2015-08-26 50 views
6

Java8劃日期有沒有什麼辦法來表示一個日期(沒有時間)與時區相關?日期不受時間的唯一代表,我能夠找到的是哪LOCALDATE我想不會允許您指定的區域。沒有時間

回答

7

簡短的回答,有沒有這樣的類型的Java-8。

日曆日期和時區的組合是值得商榷的,至少可以說。原因是時區旨在按日期和時間進行操作。由於時區負責在全球瞬時/時刻和本地時間戳(包括日期和時間)之間進行轉換,所以只有日期和區域組合才能完成此類轉換。

唯一的相似類型的我所知道的是類型

XS:在XML-Schema日期

其中明確允許一個額外的偏移量(小於,因爲它的時區不存儲夏令時規則或歷史偏移量)。在我看來,W3C聯盟相當引入這種類型的對稱性原因,而不是實時任務。 JSR-310(它將java.time-package引入Java-8)最初打算提供一種類似的類型,稱爲OffsetDate,另請參閱this page。然而,當Java-8完成發佈時,它是removed

當然,您可以自己編寫一個簡單的類,其中包含LocalDateZoneId(但您的用例是什麼?)類型的兩個狀態成員。對於XML,我寧願選擇LocalDateZonalOffset

5

也許你可以使用類ZonedDateTime:

ZonedDateTime zonedDateTime = ZonedDateTime.now(ZoneId.of("Europe/Paris")); 
LocalDate localDate = zonedDateTime.toLocalDate(); // gets you the date without time 
ZoneId zoneId = zonedDateTime.getZone(); // gets you the timezone