在 java.time.LocalDateTime 和 java.util.Date 之间转换
随着 Java 8 引入 java.time 包,开发人员已经接受了它的新 API 来处理日期和时间。在其类中,LocalDateTime 拥有与时区无关的日期与时间值。
但是,遗留代码通常依赖于 java.util.Date 类。当集成新旧代码库时,这两个类之间的转换是必要的。
转换方法:
从 java.util.Date 到 LocalDateTime:
- 使用 toInstant() 方法将 java.util.Date 转换为 Instant。
- 使用 ZoneId.systemDefault() 指定时区,通过 ofInstant() 创建 LocalDateTime( ).
代码:
Date in = new Date(); LocalDateTime ldt = LocalDateTime.ofInstant(in.toInstant(), ZoneId.systemDefault());
从 LocalDateTime 到 java.util.Date:
- 使用 atZone(ZoneId) 将 LocalDateTime 转换为 ZonedDateTime。
- 使用 toInstant() 将 ZonedDateTime 转换为 Instant,然后使用 Date.from() 将 ZonedDateTime 转换为 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.util.Date 表示时间线上的瞬间,而 java.time.* 中的 Instant 表示没有时区的瞬间。
- LocalDateTime 和 java.util.Date 之间的转换可能会因 1582 年之前的日历系统(儒略历与公历)差异而导致不同的瞬间.
以上是如何在 java.time.LocalDateTime 和 java.util.Date 之间转换?的详细内容。更多信息请关注PHP中文网其他相关文章!

关于曲线积分中变量替换的疑问本文将针对一个曲线积分计算中变量替换的步骤进行详细解释。提问者在计算一...

微信小程序申请流程及费用详解朋友委托开发微信小程序商城,在申请过程中遇到一些关于费用和流程的问题,...

Java缓存数据无法获取的原因分析及优化方案在Java项目中,将大量数据缓存到内存中以便快速访问是一个常见的�...

深入Java:值得探索的虚拟机世界很多Java开发者在掌握了基础语法和常用框架后,都希望进一步提升自己的技术�...

EasyExcel模板填充合并单元格时的常见问题在使用EasyExcel进行Excel...

系统对接中的字段映射挑战及其解决方案在系统对接过程中,经常会遇到需要将一个系统的接口字段映射到另一...

SpringBoot应用中PgJDBC连接池抛出PSQLException:ERROR:cancelingstatementduetouserrequest异常在使用SpringBoot MyBatis-Plus ...


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

WebStorm Mac版
好用的JavaScript开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

SublimeText3 Linux新版
SublimeText3 Linux最新版

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。