//格式化
//String转LocalDateTime
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String dateStr = "2021-08-19 15:11:30";
LocalDateTime date2 = LocalDateTime.parse(dateStr, fmt);
2.转string
String string1 = zeroTime.format(pattern);
3.向201802这种要使用YearMonth, 年月日没有时分秒的要使用LocalDate
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyyMM");
YearMonth curDate = YearMonth.parse(String.valueOf(curAccountMonth), fmt);
//时间的加减
LocalDateTime before = LocalDateTime.now().minusMonths(1);//向前1月
LocalDateTime next = LocalDateTime.now().plusMonths(1);//向后1月
3.今天添加一天,也就是获取明天
LocalDate tomorrow = LocalDate.now().plusDays(1);
4.从今天减去一个月
LocalDate prevMonth = LocalDate.now().minus(1, ChronoUnit.MONTHS);
5.增加毫秒
LocalDateTime time = now1.plus(600000, ChronoUnit.MILLIS);
6.获取秒数
Long second = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8"));
7.获取毫秒数
Long milliSecond = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
//获取时刻
LocalDateTime min = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);//2021-08-03T00:00
LocalDateTime max = LocalDateTime.of(LocalDate.now(), LocalTime.MAX);//2021-08-03T23:59:59.999999999
LocalDateTime noon = LocalDateTime.of(LocalDate.now(), LocalTime.NOON);//2021-08-03T12:00
LocalDateTime now = LocalDateTime.now();
now.with(TemporalAdjusters.firstDayOfMonth()); 当月第一天 2021-08-01T17:12:42.388
now.with(TemporalAdjusters.firstDayOfMonth()); 当月最后一天 2021-08-31T17:12:42.388
now.with(TemporalAdjusters.firstDayOfNextMonth()) 下月第一天 2021-09-01T17:12:42.388
now.with(TemporalAdjusters.firstDayOfYear()) 当年第一天 2021-01-01T17:17:12.723
now.with(TemporalAdjusters.lastDayOfYear()) 当年最后一天 2021-12-31T17:17:12.723
now.with(TemporalAdjusters.next(DayOfWeek.MONDAY)) 下一个周一 2021-08-09T17:18:44.847
now.with(TemporalAdjusters.lastInMonth(DayOfWeek.FRIDAY)) 最后一个周五 2021-08-27T17:20:34.026
//时间互转
//LocalDateTime 转 LocalDate
LocalDate localDate = now.toLocalDate();
//LocalDate 转 LocalDateTime
LocalDateTime localDateTime1 = localDate.atStartOfDay(); // 2021-08-03T00:00
LocalDateTime localDateTime2 = localDate.atTime(8, 20, 33); // 2021-08-03T08:20:33
LocalDateTime localDateTime3 = localDate.atTime(LocalTime.now()); //2021-08-03T17:28:57.248
//LocalDateTime 转 Date
ZoneId zoneId = ZoneId.systemDefault(); //获取系统默认时区
ZonedDateTime zonedDateTime = now.atZone(zoneId); //时区的日期和时间
Date d = Date.from(zonedDateTime.toInstant()); //获取时刻
//Date 转 LocalDateTime 先转 (ZonedDateTime 再转 LocalDateTime)
Date date = new Date();
ZoneId zoneId_1 = ZoneId.systemDefault();
LocalDateTime localDateTime = date.toInstant().atZone(zoneId).toLocalDateTime();
//Date
比较date最终也是long的大小比较。
1.date1.before(date2); //date1小于date2(date1比date2早)
date1.after(date2); //date1大于(date1比date2晚)