我是靠谱客的博主 独特溪流,最近开发中收集的这篇文章主要介绍Jdk8 日期和时间处理类,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

http://kael-aiur.com/java/java8%E4%B8%AD%E7%9A%84time%E5%8C%85.html

一、jdk8与之前的日期和时间处理类的不同:
1. Java的java.util.Date和java.util.Calendar类易用性差,不支持时区,并且是可变的,也就意味着他们都不是线程安全的;
2. 用于格式化日期的类DateFormat被放在java.text包中,它是一个抽象类,所以我们需要实例化一个SimpleDateFormat对象来处理日期格式化,并且DateFormat也是非线程安全,这意味着如果你在多线程程序中调用同一个DateFormat对象,会得到意想不到的结果。
3. 对日期的计算方式繁琐,而且容易出错,因为月份是从0开始的,这意味着从Calendar中获取的月份需要加一才能表示当前月份
由于以上这些问题,出现了一些三方的日期处理框架,例如Joda-Time,data4j等开源项目
二、Java 8日期/时间类
Java 8的日期和时间类包含LocalDate、LocalTime、Instant、Duration以及Period,这些类都包含在java.time包中。
三:日期的操作和格式化

1、增加和减少日期

2、格式化日期
新的日期API中提供了一个DateTimeFormatter类用于处理日期格式化操作,它被包含在java.time.format包中,Java 8的日期类有一个format()方法用于将日期格式化为字符串,该方法接收一个DateTimeFormatter类型参数:
四:时区
Java 8中的时区操作被很大程度上简化了,新的时区类java.time.ZoneId是原有的java.util.TimeZone类的替代品。ZoneId对象可以通过ZoneId.of()方法创建,也可以通过ZoneId.systemDefault()获取系统默认时区:

五:日期和时间主要类的关系

5、1  LocalDate的关系图:


5、2 LocalTime:


5、3 LocalDateTime:


5、4 OffsetTime:


5、5 OffsetDateTime:


5、6 ZonedDateTime:


5、7 Instant:


最后

以上就是独特溪流为你收集整理的Jdk8 日期和时间处理类的全部内容,希望文章能够帮你解决Jdk8 日期和时间处理类所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部