弃用Date

伴随 lambda表达式、streams 以及一系列小优化,Java 8 推出了全新的日期时间API。

Java处理日期、日历和时间的不足之处:将 java.util.Date 设定为可变类型,以及 SimpleDateFormat 的非线程安全使其应用非常受限。然后就在 java8 上面增加新的特性。

全新API的众多好处之一就是,明确了日期时间概念,例如:瞬时(instant)、 长短(duration)、日期、时间、时区和周期。

同时继承了Joda 库按人类语言和计算机各自解析的时间处理方式。不同于老版本,新API基于ISO标准日历系统,java.time包下的所有类都是不可变类型而且线程安全。

不可变性

❌ 可变

✅ 不可变

线程安全

❌ 需同步

✅ 天生安全

API 设计

❌ 反直觉(如月份从0开始)

✅ 人性化(如

 

Month.JANUARY

时区处理

❌ 混淆时刻与本地时间

✅ 明确区分(

Instant

/

ZonedDateTime

格式化

 

SimpleDateFormat

 

非线程安全

 

DateTimeFormatter

 

线程安全

功能扩展

❌ 基本无操作支持

✅ 丰富的日期时间计算

因此,Java 8 引入 java.time 是为了解决历史遗留问题,提供更安全、清晰、强大的日期时间处理能力。对于新代码,应优先使用新 API。

Instant:瞬时实例。

LocalDate:本地日期,不包含具体时间 例如:2014-01-14 可以用来记录生日、纪念日、加盟日等。

LocalTime:本地时间,不包含日期。

LocalDateTime:组合了日期和时间,但不包含时差和时区信息。

ZonedDateTime:最完整的日期时间,包含时区和相对UTC或格林威治的时差。

全部评论

相关推荐

昨天 12:59
美团_前端开发
xiaolihuam...:这不一定,hr无权约你面试,都是业务部门简历筛选,只要面试,肯定是重视的,业务面试官没有面试多少的kpi的说法,去年我周围很多都是hr主动微信联系最后拿offer的,流程更快。不透明就更那个了,你即使官网投递,最后也是hr跟你对接,每天可以去问hr是否通过,绝大多数情况下都是hr的速度比官网更快 甚至如果你是排序挂(面试官未提交面评,hr有一定可能让那个面试官不提交面评, Hr有一定权限可以给你内部转岗三面挂了给你换一个三面面试官)。相反,如果你直接官网投递的话,你就得每天去盯着官网看有没有评估通过,有没有hr联系你,从投递到评估可能又要经过几个工作日。至于说有没有准备好这个事情,完全取决于个人,你可以更新一个最新的简历直接通过pdf的形式给hr,hr可以拿最新简历增评,总之一条原则,hr没有权利要求业务面试官面一个业务面试官自己觉得完全不想要的人
哪些公司主动和你打招呼?
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务