獲取本月月首月末
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
LocalDateTime startDate = now.withDayOfMonth(1).truncatedTo(ChronoUnit.DAYS);
LocalDateTime endDate = now.plusMonths(1L).withDayOfMonth(1).truncatedTo(ChronoUnit.DAYS).plus(-1L, ChronoUnit.MILLIS);
System.out.println(startDate);
System.out.println(endDate);
}
2019-12-01T00:00
2019-12-31T23:59:59.999
public static void main(String[] args) {
ZonedDateTime now = ZonedDateTime.now().withZoneSameInstant(ZoneId.systemDefault());
ZonedDateTime startDate = now.withDayOfMonth(1).truncatedTo(ChronoUnit.DAYS);
ZonedDateTime endDate = now.plusMonths(1L).withDayOfMonth(1).truncatedTo(ChronoUnit.DAYS).plus(-1L, ChronoUnit.MILLIS);
System.out.println(startDate);
System.out.println(endDate);
}
2019-12-01T00:00+08:00[Asia/Shanghai]
2019-12-31T23:59:59.999+08:00[Asia/Shanghai]
獲取上個月月首月末
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
LocalDateTime startDate = now.plusMonths(-1L).withDayOfMonth(1).truncatedTo(ChronoUnit.DAYS);
LocalDateTime endDate = now.withDayOfMonth(1).truncatedTo(ChronoUnit.DAYS).truncatedTo(ChronoUnit.DAYS)
.plus(-1L, ChronoUnit.MILLIS);
System.out.println(startDate);
System.out.println(endDate);
}
2019-11-01T00:00
2019-11-30T23:59:59.999
public static void main(String[] args) {
ZonedDateTime now = ZonedDateTime.now().withZoneSameInstant(ZoneId.systemDefault());
ZonedDateTime startDate = now.plusMonths(-1L).withDayOfMonth(1).truncatedTo(ChronoUnit.DAYS);
ZonedDateTime endDate = now.withDayOfMonth(1).truncatedTo(ChronoUnit.DAYS).plus(-1L, ChronoUnit.MILLIS);
System.out.println(startDate);
System.out.println(endDate);
}
2019-11-01T00:00+08:00[Asia/Shanghai]
2019-11-30T23:59:59.999+08:00[Asia/Shanghai]