优秀的编程知识分享平台

网站首页 > 技术文章 正文

java 8 新特性 日期和时间 API(我的世界java版特性)

nanyue 2024-10-22 13:09:34 技术文章 2 ℃

旧版日期时间 API 存在的问题

  1. 设计很差: 在java.util和java.sql的包中都有日期类,java.util.Date同时包含日期和时间,而java.sql.Date仅包 含日期。此外用于格式化和解析的类在java.text包中定义。
  2. 非线程安全:java.util.Date 是非线程安全的,所有的日期类都是可变的,这是Java日期类最大的问题之一。
  3. 时区处理麻烦:日期类并不提供国际化,没有时区支持,因此Java引入了java.util.Calendar和 java.util.TimeZone类,但他们同样存在上述所有的问题。

新日期时间 API介绍

JDK 8中增加了一套全新的日期时间API,这套API设计合理,是线程安全的。新的日期及时间API位于 java.time 包 中,下面是一些关键类。

  1. LocalDate :表示日期,包含年月日,格式为 2019-10-16
  2. LocalTime :表示时间,包含时分秒,格式为 16:38:54.158549300
  3. LocalDateTime :表示日期时间,包含年月日,时分秒,格式为 2018-09-06T15:33:56.750
  4. DateTimeFormatter :日期时间格式化类。
  5. Instant:时间戳,表示一个特定的时间瞬间。
  6. Duration:用于计算2个时间(LocalTime,时分秒)的距离
  7. Period:用于计算2个日期(LocalDate,年月日)的距离
  8. ZonedDateTime :包含时区的时间

Java中使用的历法是ISO 8601日历系统,它是世界民用历法,也就是我们所说的公历。平年有365天,闰年是366 天。此外Java 8还提供了4套其他历法,分别是:

  1. ThaiBuddhistDate:泰国佛教历
  2. MinguoDate:中华民国历
  3. JapaneseDate:日本历
  4. HijrahDate:伊斯兰历



最近发表
标签列表