Java1.0中包含了一个Date类,但是它的大多数方法已经在Java 1.1引入Calendar类之后被弃用了。而Calendar并不比Date好多少。它们面临的问题是:
- 可变性:象日期和时间这样的类对象应该是不可变的。Calendar类中可以使用三种方法更改日历字段:set()、add() 和 roll()。
- 偏移性:Date中的年份是从1900开始的,而月份都是从0开始的。
- 格式化:格式化只对Date有用,Calendar则不行。
- 此外,它们也不是线程安全的,不能处理闰秒等。
可以说,对日期和时间的操作一直是Java程序员最痛苦的地方之一。第三次引入的API是成功的,并且java 8中引入的java.time API 已经纠正了过去的缺陷,将来很长一段时间内它都会为我们服务。
Java 8 吸收了 Joda-Time 的精华,以一个新的开始为 Java 创建优秀的 API。
- java.time – 包含值对象的基础包
- java.time.chrono – 提供对不同的日历系统的访问。
- java.time.format – 格式化和解析时间和日期
- java.time.temporal – 包括底层框架和扩展特性
- java.time.zone – 包含时区支持的类
Java 8 吸收了 Joda-Time 的精华,以一个新的开始为 Java 创建优秀的 API。新的 java.time 中包含了所有关于时钟(Clock),本地日期(LocalDate)、本地时间(LocalTime)、本地日期时间(LocalDateTime)、时区(ZonedDateTime)和持续时间(Duration)的类。
import org.junit.Test; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; public class TestLocalDateTime {
Period:用于计算两个”日期”间隔
Duration:用于计算两个”时间”间隔
import org.junit.Test; import java.time.Duration; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.Period; public class TestPeriodDuration {
Original: https://www.cnblogs.com/CYan521/p/16416765.html
Author: 再美不及姑娘你
Title: Java基础——JDK1.8后的日期处理类
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/713710/
转载文章受原作者版权保护。转载请注明原作者出处!