java8时间类

时间:2021-07-16 04:53:47

java8引入了一套全新的时间日期API

新的时间及日期API位于java.time中java.time包中的是类是不可变且线程安全的。

下面是一些关键类

LocalDateTime       //2018-05-12 08:30:30

LocalDate              //2018-5-12

LocalTime              //08:30:30:622

Instans                   //时间戳 2018-05-12T14:20:13.592Z

获取当前日期

LocalDate   now = LocalDate.now();

获取年: now.getYear();

获取月: now.getMonthValue();

获取天: now.getDayofMonth();

获取前一天:now.minusDays(1);

获取前一周:now.minusWeeks(1);

获取前一月:now.minusMonths(1);

获取前一年:now.minusYears(1);

获取后一天:now.plusDays(1);

获取后一周:now.plusWeeks(1);

获取后一月:now.plusMonths(1);

获取后一年:now.plusYears(1);

获取当前时间

LocalDateTime nowTime = LocalDate.now();

获取前一小时:nowTime.minusHours(1);

获取前一分钟:nowTime.minusMinutes(1);

获取前30秒:nowTime.minusSeconds(30);

获取后一小时:now.plusHours(1);

获取后一分钟:now.plusMinutes(1);

获取后30秒:now.plusSeconds(30);

nowTime也可以获取前一天,前一月。。。后一天,后一月。。。

时间格式转换

DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

String nowTimeString = nowTime.format(format);

LocalDateTime nowTimechange = LocalDateTime.parse(nowTimeString,format);

时间比较大小

LocalDateTime time1 = LocalDateTime.of(, , 12, , 3,);
or
time1 = LocalDateTime.parse("2018-05-12 08:30:30",format);
LocalDateTime time2 = LocalDateTime.of(, , 2, , , 3);
or
time2 = LocalDateTime.parse("2018-04-20 16:30:30",format);
time1.isAfter(time2)       true
time1.isEqual(time2) false
time1.isBefore(time2) false