随着 Java 8 引入 java.time 包,开发人员已经接受了它的新 API 来处理日期和时间。在其类中,LocalDateTime 拥有与时区无关的日期与时间值。
但是,遗留代码通常依赖于 java.util.Date 类。当集成新旧代码库时,这两个类之间的转换是必要的。
转换方法:
从 java.util.Date 到 LocalDateTime:
代码:
Date in = new Date(); LocalDateTime ldt = LocalDateTime.ofInstant(in.toInstant(), ZoneId.systemDefault());
从 LocalDateTime 到 java.util.Date:
代码:
LocalDateTime ldt = ... ZonedDateTime zdt = ldt.atZone(ZoneId.systemDefault()); Date output = Date.from(zdt.toInstant());
关于夏令时 (DST) 的注意事项:
从 LocalDateTime 转换为 java.util由于 DST,通过 ZonedDateTime 的日期可能会引入意外行为。某些 LocalDateTime 值可能不存在,或者可能在 DST 转换期间出现两次。有关详细信息,请参阅 atZone(ZoneId) 的 Javadoc。
其他注意事项:
以上是如何在 java.time.LocalDateTime 和 java.util.Date 之间转换?的详细内容。更多信息请关注PHP中文网其他相关文章!