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.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();
java8中LocalDate、LocalTime、LocalDateTime介绍相关推荐
- java8的LocalDate、LocalDateTime和之前的Date、Calendar
背景 之前研究了一下java里边的Date和Calendar是怎么实现的(<Calendar源码--JDK是怎么计算时间的>),然后发现有文章介绍到java8有LocalDate,然后想着 ...
- Java8中 Date和LocalDateTime的相互转换
转载自 Java8中 Date和LocalDateTime的相互转换 一.在Java 8中将Date转换为LocalDateTime 方法1: 将Date转换为LocalDatetime,我们可以使 ...
- java年月日时分秒格式_Java 日期时间 LocalDate LocalTime LocalDateTime类
// LoacalDate, LocalTime, LocalDateTime类// 不要使用构造器来构造LocalDate类的对象.实际上,应该使用LocalDate.now()静态工厂方法代表你调 ...
- jdk8中新增的日期处理类LocalDate,LocalTime,LocalDateTime,ZoneId,ZonedDateTime详解
基本概念 时刻 所有计算机系统内部都用一个整数表示时刻,这个整数是距离格林尼治标准时间1970年1月1日0时0分0秒的毫秒数,可以理解时刻就是绝对时间,它与时区无关; 不同时区对同一时刻的解读,即年月 ...
- java8 时间处理 LocalDate LocalTime LocalDateTime 及毫秒转换
LocalDate 各种和日期的操作,以天为最小单位,支持 日,月,年,星期的增加和减少,计算方便,格式化灵活.没有时分秒. LocalTime 没有日期,只是时间,就是时分秒,毫秒,可以选择不用毫秒 ...
- 时间处理相关类(Calendar,Instant,LocalDate,LocalTime,LocalDateTime)
Calendar Calendar的创建 Calendar calendar=Calendar.getInstance(); 获取当前时间的年,月,日,时,分,秒 System.out.println ...
- Java8中 LocalDate和java.sql.Date的相互转换
一.简述 首先,Java 8引入了java.time.LocalDate来表示一个没有时间的日期.其次,使用Java 8版本,还需要更新java.sql.Date,以便为LocalDate提供支持,包 ...
- 如Java8的LocalDate与Date相互转换、ZonedDateTime等常用操作包含多个使用示例、Java8时区ZoneId的使用方法、Java8时间字符串解析成类
下面将依次介绍 Date转Java8时间类操作 ,Java8时间类LocalDate常用操作(如获得当前日期,两个日期相差多少天,下个星期的日期,下个月第一天等) 解析不同时间字符串成对应的Java8 ...
- Java 8日期– LocalDate,LocalDateTime,即时
Java 8 Date Time API is one of the most sought after change for developers. Java has been missing a ...
最新文章
- Unity 播放音频文件
- redmine 贴图操作
- 很简单的自定义友好链接实现 .net core 2
- 汉诺塔问题 hdu 2064 hdu1997
- 【翻译】InterlockedIncrement内部是如何实现的?
- swift1.2新增和改动
- Chirp信号及其生成
- 一篇文章彻底搞懂海明码
- CSU - 2085 手游大佬(天数计算)
- c语言从键盘输入5阶方阵,输入5×5阶的矩阵,编程实现: (1)求两条对角线上的各元素之和....
- 基于MSP430G2553点亮TM1637数码管
- 中继器故障诊断与排除
- 2020年数学建模国赛A题题目和解题思路
- flash特效原理 图片切换滚动
- kali安装中文拼音googlepinyin之坑
- SVN的使用教程总结
- Unable to find a specification forXXnot added the source repo that hosts the Podspec to your Podfile
- Arduino - 315/433MHz RF无线收发模块
- 麒麟电脑linux微信版本过低,在优麒麟Ubuntu Kylin 20.04系统上快速安装微信和QQ的方法...
- 北斗授时设备(PTP主时钟)模块化设计原理