我是
java.time包的新手.我有一个LocalDate 2015-12-10.我需要将其转换为ZonedDateTime.时间应为00:00:00,Zone为ZoneOffset.UTC.
转换后,ZonedDateTime应为2015-12-10T00:00:00 02:00.
我将LocalDate存储在一个名为startDate的变量中.
我试过了:
ZonedDateTime.ofInstant(Instant.from(startDate),ZoneOffset.UTC)
但是得到错误
java.time.DateTimeException: Unable to obtain Instant from TemporalAccessor: 2015-12-10 of type java.time.LocalDate]
我也试过:
startDate.atStartOfDay().atZone(ZoneOffset.UTC)
这样可以预见到结果
我看了API,尝试了一些其他的方法,但迄今没有运气.
有没有其他办法将LocalDate转换为ZonedDateTime?
解决方法
当将较不具体的对象转换为更具体的对象时,请使用“at”方法:
ZonedDateTime zdt = startDate.atStartOfDay(ZoneOffset.UTC);
传递UTC偏移量将不会得到02:00的结果,这表明您正在尝试取得其他成果.