Java8没有时间划分日期

Sha*_*per 13 java-8

有没有办法表示与时区相关的日期(没有时间)?唯一没有时间我能找到的日期表示是LocalDate,我想不允许你指定一个区域.

Men*_*ild 16

简而言之,Java-8中没有这种类型.

至少可以说,日历日期和时区的组合是有问题的.原因是时区旨在按日期和时间运作.由于时区负责在全局瞬间/时刻和本地时间戳(包括日期和时间)之间进行转换,因此仅仅不能完成日期和区域的组合以实现此类转换.

我所知道的唯一类似类型是类型

XS:日期

在XML-Schema中明确允许额外的偏移量(小于时区,因为它不存储夏令时规则或历史偏移量).在我看来,W3C联盟为了对称原因而不是为了实时任务而引入了这种类型.JSR-310(将java.time-package引入Java-8)最初旨在提供类似的类型OffsetDate,请参阅此页面.但是当Java-8完成发布时它被删除了.

当然,你可以自己编写一个简单的类,它拥有两个类型的状态成员LocalDateZoneId(但你的用例是什么???).对于XML,我宁愿选择LocalDateZonalOffset.


Flo*_*ier 6

也许你可以使用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
Run Code Online (Sandbox Code Playgroud)