个人网站怎样备案,网站建设笔记,ui设计师面试必问问题,舟山网站建设开发很久以前java8中就推出了新的Time API#xff0c;旨在解决旧版Date和Calendar的缺陷。讲道理真的挺好用的#xff0c;不过由其他工具对新版time的兼容并不够完善#xff0c;导致现在使用还不够普及。大家都还在用老的Date类#xff0c;苦?的封装时间工具函数#xff0c;感…很久以前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.Calendar and java.util.TimeZone 等类。
二新版日期时间API的使用
1.LocalDate的使用
1轻松的实现日期和周间的转换
// 获取2016年6月12号是周几
LocalDate.parse(2016-06-12).getDayOfWeek();
2轻松的判断是不是闰年
boolean leapYear LocalDate.now().isLeapYear();
3轻松的获取每天的起始时间和结束时间
LocalDateTime beginningOfDay LocalDate.parse(2016-06-12).atStartOfDay();
2.LocalTime的使用
1轻松的获取时间最大值
// 23:59:59.99
LocalTime 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();