如何将本地日期转换为即时?
我使用Java 8的新DateTime API。
如何将本地日期转换为即时?我得到一个异常
LocalDate date = LocalDate.of(2012, 2, 2);
Instant instant = Instant.from(date);
我不明白为什么。
我使用Java 8的新DateTime API。
如何将本地日期转换为即时?我得到一个异常
LocalDate date = LocalDate.of(2012, 2, 2);
Instant instant = Instant.from(date);
我不明白为什么。
该类表示时间线上的瞬时点。与 的转换需要时区。与其他一些日期和时间库不同,JSR-310 不会自动为您选择时区,因此您必须提供它。Instant
LocalDate
LocalDate date = LocalDate.now();
Instant instant = date.atStartOfDay(ZoneId.systemDefault()).toInstant();
此示例使用 JVM 的缺省时区 - - 来执行转换。有关相关问题的较长答案,请参阅此处。ZoneId.systemDefault()
更新:接受的答案使用仅接受 .此答案使用 接受任何 .因此,这个答案通常更有用(并且可能应该是被接受的答案)。LocalDateTime::toInstant(ZoneOffset)
ZoneOffset
LocalDate::atStartOfDay(ZoneId)
ZoneId
PS. 我是 API 的主要作者
为了将其转换为即时,您需要有一个LocalDateTime实例,例如:
LocalDate.now().atStartOfDay().toInstant(ZoneOffset.UTC)