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