LocalDateTime和Date的比较(JDK8新特性:时间日期API)

最近在项目升级框架查资料会涉及到LocalDateTime,当时看到这个觉得为什么大家都在用这个,为什么?

说到这里我们要知道这个LocalDateTime来自哪里,实际上这个LocalDateTime是JDK8的新特性之一,JDK8发布了新的date-time API,加强对时间日期的管理。(实际上JDK8的新特性可以总结一下出个系列,虽然现在11都出来好久,但是很多人还没享受JDK8带来的便利,像lambda,方法引用,新的stream API,默认方法,optional类等,但是新的框架都已经开始更新在JDK8的基础上)。

那之前我们经常用的Date,和我们经常用来转换日期时间格式的SimpleDateFromat这两个工具有什么的不好的吗?

首先一点这两者是线程不安全的,之前我们一直强调集合的线程安全,因为线程不安全会导致集合里面元素的信息顺序不正确,但是没有注意date这个常用的工具类的线程安全。而且Date作为一个最早的版本就包含的工具类,在就有的基础上改来改去,很多方法不再推荐
Date很多方法都打了下划线,不再推荐使用了,尽量也不要在使用这些方法了
那谁来替代Date呢,JDK8带来了新的时间日期API也就是 java.time 包下面带来Local和Zone,他俩的区别一个是基于你本地时间的,一个是你自己指定时区的。

顺便说一句Local(本地)都有这几个类:LocalDateTime(既包含时间也包含日期),LocalDate(只关注日期,一般来说你只关注日期不需要时间的话用这个),LocalTime(只关注时间,不关注日期)

当然了,实际上LocalDate和LocalTime也支持日期+时间的形式,那他是怎么做到的呢,因为LocalDate里面包含一个atTime来存储时间,同理LocalTime也有一个atDate属性

例如:

 LocalDate localDate = LocalDate.of(2021,3,15);
        localDate.atTime(LocalTime.now());

但是如果不想多设置的话可以直接使用LocalDateTime,将日期时间一起处理了。

 LocalDateTime localDateTime = LocalDateTime.now();

所以说LocalDateTime取代Date是一个趋势,当然有人比较过二者的效率,结果是Date要比LocalDateTIme快一些,这也没办法毕竟线程安全可能就要多点取舍,未来的版本也许LocalDateTime也可以像Current集合那样线程又安全又快。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值