LocalDateTime 转换为 Date
看示例:
LocalDateTime ldt1 = LocalDateTime.parse("2021-04-05T06:07:08");
Date date1 = Date.from(ldt1.atZone(ZoneId.systemDefault()).toInstant());
System.out.printf("%s: %s\n", "ldt1", ldt1);
System.out.printf("%s: %s\n", "date1 from ltd1", date1);
输出结果:
ldt1: 2021-04-05T06:07:08
date1 from ltd1: Mon Apr 05 06:07:08 CST 2021
简单分析下:
先调用 LocalDateTime 的 atZone 方法(参数为系统默认时区),获取带时区信息的 ZonedDateTime 时间对象,然后转换为 Instant 瞬时对象。最后通过 Date 的 from 方法创建 Date 对象。
Date 转换为 LocalDateTime
看示例:
Date date2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2021-02-05 10:15:01");
LocalDateTime ldt2 = LocalDateTime.ofInstant(date2.toInstant(), ZoneId.systemDefault());
System.out.printf("%s: %s\n", "date2", date2);
System.out.printf("%s: %s\n", "ldt2 from date2", ldt2);
输出结果:
date2: Fri Feb 05 10:15:01 CST 2021
ldt2 from date2: 2021-02-05T10:15:01
简单分析下:
先转换 Date 为 Instant 瞬时对象,再调用 LocalDateTime 的 ofInstant 方法(第二个参数为系统默认时区)即可。
其它
完整源码,请参阅:LocalDatetimeAndDate.java。
(全文完)