java1.8中的时间处理类
在java 1.8中,增加了一些对时间的处理类,对时间的操作更加方便,在使用中对这些类进行了一些总结。
一, 3个时间操作类,
LocalDateTime , LocalDate , LocalTime
这三个一般用于操作具体格式的时间,如只需要日期的操作就用LocalDate,只需要时间的操作用LocalTime
作用:
1,对时间进行加减 minus/plus,plusDays minusDays…
2, 获取这个时间在今年中的哪一天,本月中的第几天,本周中第几天 getDayOfMonth getDayOfYear getDayOfWeek
3, 获取这个时间在1970年1月1日 之后的多少天,多少秒…(可以用来计算时间差距)localDate.toEpochDay(),localDateTime.toEpochSecond(ZoneOffset.ofHours(8));计算秒的需要传入时区。
4,静态方法中有parse方法,可以使用LocalDateTime parseLocalDateTime = LocalDateTime.parse(“2018年08月04日 12时00分42秒”, formatter);来构造一个LocalDateTime
样例:
//2007-12-03 10:15:30.
LocalDateTime localDateTime = LocalDateTime.now();
//2007-12-03
LocalDate localDate = LocalDate.now();
//10:15:30
LocalTime localTime = LocalTime.now();
二,一个时间格式化类
DateTimeFormatter
作用:
用户将上面的3个类格式化成想要的时间格式字符串
样例:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH时mm分ss秒");
//下面两种方式都可以用来格式化成想要的格式
String string = localDateTime.format(formatter);
String string1 = formatter.format(localDateTime);
console 输出:
2018年08月04日 11时37分45秒
2018年08月04日 11时37分45秒
三,两个时间间隔类
Duration,Period
作用
Period记两个日期时间(localDate)之间的差距。
Duration记两个时间(年月日/时分秒/年月日时分秒)之间的差距。
样例:
//两个Date之间的差距 可以获取相差的年月日
Period period = Period.between(localDate, localDate1);
//time之间的差距,获得相差的时分秒,注意
Duration durationTime = Duration.between(localTime, localTime1);
//Date之间的差距
Duration durationDate = Duration.between(localDate, localDate1);
//DateTime之间的差距
Duration durationDateTime = Duration.between(localDateTime, localDateTime1);