您的位置 首页 java

35、Java8 日期/时间特性和API包

1、Java8 日期/时间特性

Java8 日期/事件API是 JSR-310【JSR是JavaSpecification Requests的缩写,意思是“ Java 规范提案”。是指向 JCP (JavaCommunity Process)提出新增一个标准化技术规范的正式请求。】的实现,它的实现目的是克服旧的日期时间实现中所有的缺陷,新的日期/时间API的一些设计原则:

不变性:新的日期/时间API中,所有的类都是不可变的,这对多线程环境有好处

关注点分离:新的APi将人可读的日期时间和机器时间(unix timestamp)明确分离,它为日期(Date)、时间(time)、日期时间(DateTIme)、时间戳(unix timestamp)以及时区定义了不同的类。

清晰:在所有的类中,方法都被明确定义用以完成相同的行为,要拿到当前实例我们可以使用now()方法,在所有的类中都定义了format和parse方法,而不是像以前那样专门有一个独立的类,为了更好的处理问题,所有的类都使用了 工厂模式 和策略模式,一旦你使用了其中某个类的方法,与其他类协同工作并不难。

实用操作:所有新的日期/时间API类都实现了一系列方法用以完成通用的任务,比如:加、减、格式化、解析、从日期/事件中提取单独的成分等等

可扩展性:新的日期/时间API是工作在ISO-8601日历系统上的,但我们也可以将其应用在非ISO 的日历上。

35、Java8 日期/时间特性和API包

2、Java8 日期/事件API解析

java.time :新的Java日期时间API的基础包,所有的主要基础类都是这个包的一部分,如:LocalDate,LocalTime,LocalDateTime,Instant,Period,Duration等等。所有这些类都是不可变的和线程安全的,在绝大数情况下能有效处理一些公共的需求。

java.time.chrono:为非ISO的日历系统定义了一些泛化的API,可以扩展AbstractChronology类来创建自己的日历系统

java.time.format:能够格式化和解析日期时间对象的类,在绝大多数情况下,不应该直接使用,因为java.time包中相应的类已经提供了格式化和解析的方法。

java.time.temporal:包含一些时态对象,可以用其找出关于日期事件对象的某个特定日期或时间。比如:某月的第一天或最后一天。可以非常容易认出这些方法,因为它们都具有“withXXX”的格式。

java.time.zone:包含支持不同时区以及相关规则的类。

文章来源:智云一二三科技

文章标题:35、Java8 日期/时间特性和API包

文章地址:https://www.zhihuclub.com/171652.shtml

关于作者: 智云科技

热门文章

网站地图