长期无偿解答 Java 时间类问题疑问

java.util.Date
java. Time.*

参考: DateUtil.java · duanluan/ZUtil

1 Like

这百度也行阿

复杂的没有,有提到很多也是错的

虽然但是,这个有什么难点吗

俺也要开个帖子 :lark_051:

长期无效解答 Java 类问题疑问

感谢你的分享!
支持,坚持做下去!

做了再说,我双手双脚还个二弟都支持!
毕竟技术小白,需要技术佬支持

还是有的,比如:

  1. 两者的值不同
LocalDateTime localDateTime = LocalDateTime.of(2022, 1, 1, 0, 0);
ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.of("America/New_York"));
System.out.println(zonedDateTime.getOffset());

zonedDateTime = zonedDateTime.withMonth(4);
System.out.println(zonedDateTime.getOffset());
  1. 后者会输出为 null
ZoneId zoneId = ZoneId.of("America/New_York");
ZoneRules zoneRules = zoneId.getRules();
LocalDateTime localDateTime = LocalDateTime.of(2022, 3, 13, 2, 30);
System.out.println(zoneRules.getTransition(localDateTime));
System.out.println(zoneRules.getTransition(localDateTime.plusMinutes(30)));

主要集中在时区ID、时区偏移量、时区规则的处理。

我们项目现在都开始用秒的时间戳了,虽然不方便数据库直接查数据,但是对接的时候,感觉很好,也没得时区烦恼

#软件开发添加#快问快答移除

1 Like

厉害啊哥,我都没注意

我还是偏向用 LocalDateTime 的,然后服务器、数据库时区都设置为 UTC,传给前端也是 UTC,前端用第三方库格式化,可以自适应浏览器时区。

不过时间戳的话,后端也可以用java.time.Instant,不含时区。

1 Like

好像和夏令时有关,太过于复杂,平时开发应该用不到