专业的JAVA编程教程与资源

网站首页 > java教程 正文

还在用痛苦的用以前的日期类吗?教你如何轻松在java8中用!

temp10 2025-01-27 00:25:16 java教程 17 ℃ 0 评论

Java对日期,日历及时间的处理一直以来都饱受诟病,尤其是它决定将java.util.Date定义为可修改的以及将SimpleDateFormat实现成非线程安全的。看来Java已经意识到需要为时间及日期功能提供更好的支持了,这对已经习惯使用Joda时间日期库的社区而言也是件好事。关于这个新的时间日期库的最大的优点就在于它定义清楚了时间日期相关的一些概念,比方说,瞬时时间(Instant),持续时间(duration),日期(date),时间(time),时区(time-zone)以及时间段(Period)。同时它也借鉴了Joda库的一些优点,比如将人和机器对时间日期的理解区分开的。Java 8仍然延用了ISO的日历体系,并且与它的前辈们不同,java.time包中的类是不可变且线程安全的。新的时间及日期API位于java.time包中,下面是里面的一些关键的类:

  • Instant——它代表的是时间戳

    还在用痛苦的用以前的日期类吗?教你如何轻松在java8中用!

  • LocalDate——不包含具体时间的日期,比如2016-08-09。它可以用来存储生日,周年纪念日,入职日期等。

  • LocalTime——它代表的是不含日期的时间

  • LocalDateTime——它包含了日期及时间,不过还是没有偏移信息或者说时区。

  • ZonedDateTime——这是一个包含时区的完整的日期时间,偏移量是以UTC/格林威治时间为基准的。

以下是程序运行输出的结果:

Today's date : 2016-08-09

Year : 2016 Month : 8 day : 9

Your Date of birth is : 2016-08-09

Today 2016-08-09 and date1 2016-08-09 are same date

Many Many happy returns of the day !!

local time now : 15:42:34.682

Time after 2 hours : 17:42:34.682

Date after 1 week : 2016-08-16

Current date and time in a particular timezone : 2016-08-09T15:42:34.685-04:00[America/New_York]

Months left between today and Java 8 release : -4

What is value of this instant 2016-08-09T07:42:34.690Z

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表