失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > java8中LocalDate LocalTime LocalDateTime介绍

java8中LocalDate LocalTime LocalDateTime介绍

时间:2019-11-29 08:06:35

相关推荐

java8中LocalDate LocalTime LocalDateTime介绍

很久以前java8中就推出了新的Time API,旨在解决旧版Date和Calendar的缺陷。讲道理真的挺好用的,不过由其他工具对新版time的兼容并不够完善,导致现在使用还不够普及。大家都还在用老的Date类,苦?的封装时间工具函数,感?真的没意思。

(一)旧版Time/Date类的缺陷

(1)线程不安全:

首先旧版本的时间类是线程不安全的,在多线程操作同一个时间类实例时,会抛出异常。而新版本的时间工具全部都是线程安全的。

(2)设计混乱、可读性不好:

旧版本的java.util.Date,虽然名字叫Date,?是其实既包含日期也包含时间。同时在mysql中也有个java.sql.Date,这两个Date名字一摸一样,但是mysql的Date是不包含时间的。另外对日期格式化的工具却在java.text包中。包比较混乱,对我们程序盐多有不便。

(3)没有良好的时区方法支持:

新版本的时间类提供了非常良好的时区API,旧版本需要使用java.util.Calendarandjava.util.TimeZone等类。

(二)新版日期时间API的使用

1.LocalDate的使用:

(1)轻松的实现日期和周间的转换

// 获取6月12号是周几LocalDate.parse("-06-12").getDayOfWeek();

(2)轻松的判断是不是闰年

boolean leapYear = LocalDate.now().isLeapYear();

(3)轻松的获取每天的起始时间和结束时间

LocalDateTime beginningOfDay = LocalDate.parse("-06-12").atStartOfDay();

2.LocalTime的使用:

(1)轻松的获取时间最大值

// 23:59:59.99LocalTime maxTime = LocalTime.MAX

(2)轻松的进行时间增减

(1)轻松的获取巴黎的时区

ZonedDateTime zonedDateTime = ZonedDateTime.of(localDateTime, zoneId);

3.LocalDateTime的使用:

LocalDateTime包含日期和时间,是之前两者的合集,这里就不详细介绍了。

(三)新版时区API的使用

(1)轻松的获取巴黎的时区

ZoneId zoneId = ZoneId.of("Europe/Paris");

(2)将本地时区时间转为其他时区时间:

ZonedDateTime zonedDateTime = ZonedDateTime.of(localDateTime, zoneId);

(四)获取日期时间间隔

// 日期间隔天数int five = Period.between(finalDate, initialDate).getDays();// 时间间隔秒数int thirty = Duration.between(finalTime, initialTime).getSeconds();

如果觉得《java8中LocalDate LocalTime LocalDateTime介绍》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。