java8时间API

Java 8日期/时间( Date/Time)API是java8很重要的新增内容,也是开发人员最受追捧的变化之一,Java从一开始就没有对日期时间处理的一致性方法,因此日期/时间API也是除Java核心API以外另一项倍受欢迎的内容。

为什么我们需要新的Java日期/时间API?

在Java中,现有的与日期和时间相关的类存在诸多问题,其中有:
Java的日期/时间类的定义并不一致,在java.util和java.sql的包中都有日期类,此外用于格式化和解析的类在java.text包中定义。
java.util.Date同时包含日期和时间,而java.sql.Date仅包含日期,将其纳入java.sql包并不合理。另外这两个类都有相同的名字,这本身就是一个非常糟糕的设计。
对于时间、时间戳、格式化以及解析,并没有一些明确定义的类。对于格式化和解析的需求,我们有java.text.DateFormat抽象类,但通常情况下,SimpleDateFormat类被用于此类需求。
原有的时间类使用不方便,新时间类增加了很多语义化好的方法,比如plusMonths,plusWeeks。
所有的日期类都是可变的,因此他们都不是线程安全的,这是Java日期类最大的问题之一。
日期类并不提供国际化,没有时区支持,因此Java引入了java.util.Calendar和java.util.TimeZone类,但他们同样存在上述所有的问题。

java8 java.time关键类

Instant

由于java8中新增的time类都是不可变类,所以下面这些方法都会返回一个新的对象

从时间格式字符串获取实例,ISO格式

Instant时间大小先后比较

LocalDate

下面都是一些很直观可读性很强的方法,也没有老的时间库月份需要加1的坑

java8中获取特定日期

java8中判断时间是否相等

Instant,LocalDate,LocalDateTime,ZonedDateTime都重写了equals方法,直接通过equals方法比较即可。

年月日增减

LocalDateTime

localDateTime于LocalDate类似,均含有get方法,of方法等。

java8中时间差比较

到下一个整点相差分钟数,11:20,还有40分钟12点

java8时间类相互转换

Instant 转Date

Date转Instant

LocalDateTime转Instant

Instant转LocalDateTime

LocalDateTime获取LocalTime


文章来源:http://www.itdouzi.com/java/java8-instant-localdatetime.html

  f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值