你想成为时间管理大师吗?狗头(#^.^#)

目录 Date Calendar LocalDateTime 在运用中常见的计算时间差值的案例 Date&#x…

目录

Date

Calendar

LocalDateTime

在运用中常见的计算时间差值的案例

Date;

Carlendar:

LocalDateTime:

总结:


Date

概述:Date代表了一个特定的时间,精确到毫秒

构造方法:

代码演示:

运行结果:

常用方法:

代码演示:

运行结果:

Calendar

概述:

  • Calendar 为特定瞬间与一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法
  • Calendar 提供了一个类方法 getInstance 用于获取这种类型的一般有用的对象,其日历字段已使用当前日期和时间初始化:Calendar rightNow = Calendar.getInstance();

方法:

代码演示:

运行结果:

LocalDateTime

使用新时间日期API的必要性

在java8以前,或许:

  • 当你在做有关时间日期的操作时,你会想到用Date;
  • 当你在做日期、月份、天数相加减时,你会想到用Calendar;
  • 当你需要对时间日期进行格式化时,你会想到使用SimpleDateFormat或DateFormat下的其他子类;

但是,你必须知道,以上有关的时间日期操作对象,都是可变的、线程不安全的,同时,如果作为一个经常写过类似代码的人来说,尽管有相关对象提供某些操作,但并不能很快、很简单的就能得到最终想要的结果,如:要计算两个时间点之间相差的年、月、日、周、时、分、秒等,这些计算尽管原有API也能够实现,但原有API除了线程不安全之外,另外一个不足之处就是代码繁琐,性能低!

没错,java8出的新的时间日期API都是线程安全的,并且性能更好,代码更简洁!

其中,LocalDate、LocalTime、LocalDateTime是新API里的基础对象,绝大多数操作都是围绕这几个对象来进行的,有必要搞清楚:

LocalDate : 只含年月日的日期对象
LocalTime :只含时分秒的时间对象
LocalDateTime : 同时含有年月日时分秒的日期对象

三者的区别(LocalDate、LocalTime、 LocalDateTime ):

1.表示时间的区别

代码演示:

运行结果:

2.LocalDateTime对于时间的修改更加准确

兄弟们上代码:

修改具体的值:

运行结果:

在运用中常见的计算时间差值的案例

Date;

Carlendar:

LocalDateTime:

总结:

1.出现的差异:

Date是JDK1.0提供的。

Calendar是在JDK1.1提供的,它替代了Date中的很多方法。

LocalDate是在JDK1.8提供的。

2.准确度的差异

Date和Calendar在实例化时会有偏移量(例如实例化"2000-1-2"),Date的year偏移量是1900,month偏移量是1(0~11月,在指定月份时要-1)。Calendar的月份有偏移量1,和Date一样,年份没有偏移量。

LocalDate(LocalTime LocalDateTime)没有偏移量。
3.底层原理:

Date和Calendar如果修改了它们的某个日期值,是直接改变其原本的值,类比对基础数据类型的修改。

LocalDate(LocalTime LocalDateTime)对它们的修改不会改变其原本的值,而是会返回一个新对象,类比String的不可变性。

本文来自网络,不代表软粉网立场,转载请注明出处:https://www.rfff.net/p/3286.html

作者: HUI

发表评论

您的电子邮箱地址不会被公开。

返回顶部