private String startTime() {
LocalDate now = LocalDate.now(); // 获取当前日期
LocalDate startDay = now.plusDays(0); // 将当前日期加上 0 天,得到今天
LocalTime min = LocalTime.MIN; // 获取一天中最小的时间,即 00:00:00
LocalDateTime start = LocalDateTime.of(startDay, min); // 构造当天开始时刻LocalDateTime 对象
return start.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); // 格式化 LocalDateTime 为字符串并返回
}
private String endTime(){
LocalDate now = LocalDate.now();
LocalDate endDay = now.plusDays(2);
LocalTime max = LocalTime.MAX;
LocalDateTime end = LocalDateTime.of(endDay, max);
return end.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
}
-
获取当前日期:
LocalDate.now()
返回当前系统的日期,不包含时间和时区信息。LocalDate
类表示日期,如 2023-08-27。
-
计算今天的日期:
now.plusDays(0)
将当前日期加上 0 天,实际上就是获取今天。- 这里使用
plusDays(0)
主要是为了保持代码的一致性和清晰性,实际上now
和startDay
的值是相同的。
-
获取一天的最小时间:
LocalTime.MIN
表示一天中最小的时间,即 00:00:00。
-
构造当天开始时刻的 LocalDateTime 对象:
LocalDateTime.of(startDay, min)
创建一个LocalDateTime
对象,表示当天的开始时刻,即startDay
日期加上min
时间。
-
格式化 LocalDateTime 为字符串:
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
创建一个日期时间格式器,用于将LocalDateTime
对象格式化为字符串。"yyyy-MM-dd HH:mm:ss"
是日期时间的格式模式,其中:yyyy
表示四位数的年份;MM
表示月份;dd
表示月份中的天数;HH
表示小时(24小时制);mm
表示分钟;ss
表示秒。
start.format(formatter)
将LocalDateTime
对象start
格式化为字符串,并返回。
示例输出
如果当前日期是 2023 年 8 月 27 日,该方法将返回 "2023-08-27 00:00:00"
。