同一个时间点 不同的时区 时间戳一样吗_大厂如何使用Java8日期时间?

  点击上方“JavaEdge”,关注公众号

设为“ 星标”,好文章不错过! 24a132efcef0778ff37684084d3db9d6.png

1 背景

25930ce6376dc7c9a0dce2c6ce2c6ec8.png

Java8前,处理日期时间时,使用的“三大件”

  • Date

  • Calender

  • SimpleDateFormat

以声明时间戳、使用日历处理日期和格式化解析日期时间。但这些类的API可读性差、使用繁琐,且非线程安全,如同设计的翔一样的IO,也是Java让人诟病的一大原因。

于是Java8推出全新日期时间类。这些类的API功能强大简便、线程安全。

但毕竟Java8刚出这些类,诸如序列化、数据访问等类库都不支持Java8日期时间类,需在新老类中来回切换。比如,在业务逻辑层使用LocalDateTime,存入数据库或者返回前端的时候还要切换回Date。因此,还不如沿用老的日期时间类。

不过我们生活在最好的时代,基本主流类库都支持新日期时间类型,但还有项目因还是用祖传日期时间类,出现很多古今交错的错误实践。
比如

  • 通过随意修改时区,使读取到的数据匹配当前时钟

  • 直接对读取到的数据做加、减几个小时的操作,来“修正数据”

本文旨在分析古今时间错乱的本质原因,看看使用遗留日期时间类,来处理日期时间初始化、格式化、解析、计算等可能会遇到的问题,以及如何使用新日期时间类解决。

24a132efcef0778ff37684084d3db9d6.png

2 初始化日期时间

25930ce6376dc7c9a0dce2c6ce2c6ec8.png

初始化2020年11月11日11点11分11秒时间,这样可行吗?9f07350e2d6fddf0e62c385a1c81c1fe.png

日志输出时间是3029年12月11日11点11分11秒:

date : Sat 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值