【发布时间】:2020-06-12 17:00:21
【问题描述】:
我需要为销售设计一份报告。要求是按月获取最近 6 个月的销售记录,并且报告将在每个月的第一天触发,其中包含过去六个月的数据。例如 - 如果报告必须在 2020 年 4 月 1 日上午 10:00 触发,那么我希望报告的结束日期为 - 2020 年 3 月 31 日 23:59:59,开始日期为 2019 年 10 月 1 日 00:00:00。在这些开始日期和结束日期之间,我希望明智的日期范围从数据库中获取该月的数据。比如——
For March - Start Date -- 2020-03-01 00:00:00 End Date -- 2020-03-31 23:59:59
For Feb- Start Date -- 2020-02-01 00:00:00 End Date -- 2020-02-29 23:59:59
等等…… 所需的日期格式为 - yyyy-MM-dd HH:mm:ss
我计划为此使用 LocalDateTime,但无法弄清楚如何实际实现这一目标。 我的代码在下面-
LocalDateTime endDate = LocalDateTime.now();
LocalDateTime startDate = endDate.minusMonths(6);
DateTimeFormatter dateFormatter3 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
for (LocalDateTime date = endDate; date.isAfter(startDate); date = date.minusMonths(1)) {
System.out.println(date.format(dateFormatter3));
}
这是我解决这个问题的基本方法。我打算使用一个 for 循环,以便我可以获取每个月的开始日期和结束日期,并从数据库中查询数据。请帮助我如何按月拆分日期/时间并使用它。
提前致谢。
【问题讨论】:
标签: java date datetime calendar jodatime