2015-08-26 26 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