Java 8系列(一): 日期/时间- JSR310( Date and Time API)

本文详细介绍了Java新时间API的关键特性及使用方法,包括瞬时、日期、时间等概念,并对比了旧版API的不同之处。此外,还展示了如何利用这些API进行日期时间的计算。

全新API的众多好处之一就是明确了日期时间概念,例如:瞬时(instant)、长短(duration)、日期、时间、时区和周期。同时继承了Joda库按人类语言和计算机各自解析的时间处理方式。不同老版本,新API基于ISO标准日历系统,java.time包下的所有类都是不可变类且线程安全的。新版API中java.time包里的一些关键类:

  • Instant:瞬时实例
  • LocalDate:本地日期,不包含具体时间 例如:2014-01-14 可以用来记录生日、纪念日、加盟日等。
  • LocalTime:本地时间,不包含日期。
  • LocalDateTime:组合了日期和时间,但不包含时差和时区信息。
  • ZonedDateTime:最完整的日期时间,包含时区和相对UTC或格林威治的时差。

java.time.LocalDate

只提供日期不提供时间信息

LocalDate localDate = LocalDate.now();

//
localDate.lengthOfMonth();
localDate.getMonth().name();
//2天之后
localDate.plus(2,ChronoUnit.DAYS);
//2天之前
localDate.minus(2,ChronoUnit.DAYS);

java.time.LocalTime

只提供时间而不提供日期信息

LocalTime localTime=LocalTime.now();

//小时
localTime.getHour();
//2个小时之后
localTime.plus(2,ChronoUnit.HOURS);
//6分钟之后
localTime.plusMinutes(6);
//2个小时之前
localTime.plus(2,ChronoUnit.HOURS);

java.time.LocalDateTime

提供时间和日期的信息

LocalDateTime localDateTime = LocalDateTime.now();

//2天之后
localDateTime.plus(2,ChronoUnit.DAYS);
//2天之前
localDateTime.minus(2,ChronoUnit.DAYS);

java.time.Year

提供年的信息

Year year = Year.now();

java.time.Duration

用来计算两个给定的日期之间包含多少秒,多少毫秒

java.time.Period

用户计算两个给定的日期之间包含多少天,多少月,或者多少年

LocalDate localDate = LocalDate.now();
Period period = Period.between(localDate,localDate.plus(2,ChronoUnit.DAYS));
period.getDays();

 

参考文章:

  • http://blog.youkuaiyun.com/sf_cyl/article/details/51987088
  • http://blog.youkuaiyun.com/bangrenzhuce/article/details/52270232
  • http://www.cnblogs.com/exmyth/p/6425878.html
  • http://www.blogjava.net/4cai/archive/2014/04/29/413041.html

 

转载于:https://my.oschina.net/sasky/blog/1519324

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值