主要使用 LocalDateTime 和 LocalDate
LocalDate : 只是到日期
LocalDateTime :包含dateTime 但是格式化中没有通用的 如 2020-01-07 18:00:01 格式的
格式转换的 DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
1. 转换为 yyyy-MM-dd String
格式是 : 2020-01-07
// 1. 当前时间的
LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
// 2. 固定时间的
String parseDateStr = "2020-01-07";
String fixDateFormat = LocalDate.parse(parseDateStr).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
思路 先转换为 LocalDate 再转换为 string
同样使用于 yyyy-MM-dd HH:mm:ss
LocalDate 可以 parse 任意类型
String str = "2017-11-21 14:41:06:612";
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss:SSS");
String fixDateTimeStr = LocalDate.parse(str,fmt).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
2. 转换为 yyyy-MM-dd HH:mm:ss String
格式是 : 2020-01-07 18:00:01
// 获取当前时间的年月日 时分秒
String formatDateTimeStr = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
// 获取固定时间的 年月日 时分秒
String formatDateStr = "2019-10-12";
String startOfDay = LocalDate.parse(formatDateStr).atTime(LocalTime.MIN)
.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
String endOfDay = LocalDate.parse(formatDateStr).atTime(LocalTime.MAX)
.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
通过 atTime 转换为 LocalDateTime
str + " 00:00:00"
3. 转换为 date
LocalDate nowLocalDate = LocalDate.now();
Date date = Date.from(localDate.atStartOfDay(ZoneOffset.ofHours(8)).toInstant());
LocalDate nowLocalDate = LocalDate.now();
Date date = Date.from(nowLocalDate.atStartOfDay(ZoneOffset.ofHours(8)).toInstant());
4. 修改时间
LocalDateTime.now().plusDays(2).withHour(23);
或者比较差值
LocalDateTime localDateTime01 = LocalDateTime.of(2019, 6, 18, 12, 0);
LocalDateTime localDateTime02 = LocalDateTime.of(2019, 6, 1, 12, 0);
System.out.println(localDateTime01.isAfter(localDateTime02)); // 类似的,还有 isBefore 等方法
LocalDateTime localDateTime03 = LocalDateTime.of(2019, 6, 18, 12, 0);
LocalDateTime localDateTime04 = LocalDateTime.of(2019, 6, 18, 13, 0);
Duration duration = Duration.between(localDateTime03, localDateTime04);