Java8新特性之日期-时间API

作者:微信小助手

发布时间:2018-12-24T21:04:28


源 / Java团长

在Java8之前的版本中,我们处理时间类型常常使用的是java.util包下的Date类。

但使用Date类却有诸多的弊端,如:java.util.Date是非线程安全的,所有的日期类都是可变的;日期/时间类的定义并不一致,在java.util和java.sql的包下都含有Date类,在开发过程中极易出错; 日期类并不提供国际化,没有时区支持。

为了解决以上问题,Java8在java.time包下提供了很多新的API,常用的类包括LocalDate、LocalTime、LocalDateTime,用以处理日期,时间,日期/时间等


LocalDate类

LocalDate是一个不可变类,在不考虑时区的情况下可以对日期(不包括时间)进行各种操作,它的默认格式是yyyy-MM-dd

获取当前日期以及年、月、日

代码示例:

//获取当前日期以及年、月、日
LocalDate localDate = LocalDate.now();
int year = localDate.getYear();
int month = localDate.getMonthValue();
int day = localDate.getDayOfMonth();
System.out.println("当前日期:" + localDate);
System.out.println("年:" + year + "  月:" + month + "  日:" + day);

运行结果:

当前日期:2018-12-12
年:2018  月:12  日:12

获取指定的日期

代码示例:

//获取指定的日期
LocalDate specifiedDay = LocalDate.of(2008818);
System.out.println("指定日期:" + specifiedDay);

运行结果: