与 Date 相比
获取当前日期+时间
LocalDateTime.now()
获取当前日期
LocalDateTime.now().toLocalDate()
获取当前时间
LocalDateTime.now().toLocalTime()
获取本月第一天
public static LocalDateTime getMonthFirst() {LocalDateTime firstDayOfMonth = LocalDateTime.of(LocalDate.from(LocalDateTime.now().with(TemporalAdjusters.firstDayOfMonth())), LocalTime.MIN);return firstDayOfMonth;
}
获取本月最后一天
public static LocalDateTime getMonthLast() {LocalDateTime lastDayOfMonth = LocalDateTime.of(LocalDate.from(LocalDateTime.now().with(TemporalAdjusters.lastDayOfMonth())), LocalTime.of(23, 59, 59));return lastDayOfMonth;
}
获取本周一,并设置时间为 0
public static LocalDateTime getMonday() {LocalDate date = LocalDateTime.of(LocalDate.now(), LocalTime.MIN).with(DayOfWeek.MONDAY).toLocalDate();return date.atTime(0, 0, 0);
}
获取本周六,并设置时间为 23:59:59
public static LocalDateTime getSaturday() {LocalDate date = LocalDateTime.of(LocalDate.now(), LocalTime.MIN).with(DayOfWeek.SATURDAY).toLocalDate();return date.atTime(23, 59, 59);
}
获取下 n 周的时间
例:
传入:req = 本周一,num = 1,
输出:下周一
public static LocalDateTime getNextWeek(LocalDateTime req, Integer num) {return req.plusWeeks(num);
}
查询当前时间是礼拜几
例:
输入:2022-12-26T10:41:40
输出:MONDAY
public static DayOfWeek getDayOfWeek(LocalDateTime dateTime) {DayOfWeek week = dateTime.getDayOfWeek();return week;
}
获取下一个周几
例:
输入:date:2022-12-19T10:52:43(这天是周一),week:1
输出:2022-12-26T10:49:34(下周的周一)
输入:date:2022-12-19T10:52:43(这天是周一),week:2
输出:2022-12-20T10:52:06(本周的周二)
public static LocalDateTime getWeekDate(LocalDateTime date, int week) {return date.with(TemporalAdjusters.next(DayOfWeek.of(week)));
}
比较两个时间
结束时间 < 当前时间
if(endTime.isBefore(LocalDateTime.now())){return;
}
重置时分秒
public static LocalDateTime formatEnd(LocalDateTime end) {return LocalDateTime.of(end.toLocalDate(), LocalTime.of(23, 59, 59));
}