首页 体育 教育 财经 社会 娱乐 军事 国内 科技 互联网 房产 国际 女人 汽车 游戏

详解Java8的日期时间API

2020-05-21

在 JDK1.0 的时分,Java引入了 java.util.Date 来处理日期和时刻;在 JDK1.1 的时分又引入了功用更强壮的 java.util.Calendar ,可是 Calendar 的API仍是不尽善尽美,,存在实例易变、没有处理闰秒等等的问题。所以在 JDK1.8 的时分,Java引入了 java.time API,这才真实修改了曩昔的缺点,且更为好用。本篇就具体介绍一下 JDK1.8 的日期和时刻API。

本篇首要包含以下内容:

在Java 8之前,一切关于时刻和日期的API都存在各种运用方面的缺点,首要有:


首要来看一下java.time这个包下的类结构图:

能够看到,除了一些日期、时刻类之外,还有四个包:chrono、format、temporal、zone。

先简略介绍下这四个包的用处。

chrono包供给历法相关的接口与完成。

Java中默许运用的历法是ISO 8601日历体系,它是国际民用历法,也便是咱们所说的公历。平年有365天,闰年是366天。闰年的界说是:非世编年,能被4整除;世编年能被400整除。为了核算的一致性,公元1年的前一年被作为公元0年,以此类推。

此外chrono包供给了四种其他历法,每种历法有自己的纪元类、日历类和日期类,分别是:








Java 8的日期和时刻类包含Instant、Duration、Period、LocalDate、LocalTime,这些类都包含在java.time包中。下面逐个来看看这些类的用法。

Instant是时刻线上的一个点,表明一个时刻戳。Instant能够准确到纳秒,这超过了long的最大表明规模,所以在Instant的完成中是分成了两部分来表明,一部分是 seconds ,表明从1970-01-01 00:00:00开端到现在的秒数,另一个部分是 nanos ,表明纳秒部分。

以下是创立Instant的两种办法:

热门文章

随机推荐

推荐文章