Java8新的时间处理包

本文介绍Java 8中新的日期时间处理API的使用方法,包括如何进行日期和时间的加减操作,以及如何在Java.util.Date与Java 8的新日期时间类之间进行转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   在jdk8中新出了一个时间处理包,试用了一下,日期的加减很方便,以前要用什么joda(我没用过,只听过),好了,废话不多说,看个简单的例子。

LocalDate curDate = LocalDate.now();
LocalDate preDate = curDate.plus(-1, ChronoUnit.DAYS);
LocalDate nextDate = curDate.plus(1, ChronoUnit.DAYS);
System.out.println(preDate);// 2017-06-16
System.out.println(curDate);// 2017-06-17
System.out.println(nextDate);// 2017-06-18


LocalDateTime curDateTime = LocalDateTime.now();
LocalDateTime preDateTime = curDateTime.plus(-1, ChronoUnit.DAYS);
LocalDateTime nextDateTime = curDateTime.plus(1, ChronoUnit.DAYS);

System.out.println(preDateTime);// 2017-06-16T10:21:39.041
System.out.println(curDateTime);// 2017-06-17T10:21:39.041
System.out.println(nextDateTime);// 2017-06-18T10:21:39.041

    用起来,真的很方便,加一天减一天,加一小时,减一小时都是很容易就写出来。

 

    很多系统还是用的java.util.Date类,既想使用java8中的,又想兼容之前的数据类型,那么就需要他们之间能互相转换就行了。

// date 转 localdate
Date inputDate = new Date();
Instant inputDateInstant = inputDate.toInstant();
ZonedDateTime zdt = inputDateInstant.atZone(ZoneId.systemDefault());
LocalDate outputLocalDate = zdt.toLocalDate();
System.out.println(outputLocalDate);// 2017-08-02

// localdate 转 date
LocalDate inputLocalDate = LocalDate.now();
ZoneId zone = ZoneId.systemDefault();
Instant inputLocalDateInstant = inputLocalDate.atStartOfDay().atZone(zone).toInstant();
java.util.Date outputDate = Date.from(inputLocalDateInstant);
System.out.println(outputDate);// Wed Aug 02 00:00:00 CST 2017

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值