我需要一个正在研究的项目来查询给定日期范围内的API-在这种情况下是一周,例如:
星期日(2019-06-02T00:00:00Z)-星期六(2019-06-08T23:59:59Z)
因此,我通过用户输入得到的是一周和一年,例如:
周-23
年份-2019
是否有使用Java 8确定对应的日子的好方法?
编辑:我环顾四周,但没有找到解决此问题的最新方法,我所看到的最近的东西是使用JodaTime。我想知道是否有更好/更现代的方法来解决这个问题?
答案 0 :(得分:1)
由于您知道一周有7天,因此知道一年中的数字天为week * 7
,在这种情况下为23 * 7。
您可以使用LocalDate.ofYear(year, dayOfYear)
方法获取开始日期,然后添加6天以获取一周的结束时间。
LocalDate startDate = LocalDate.ofYearDay(2019, 23 * 7);
LocalDate endDate = startDate.plusDays(6);
LocalDateTime startDateTime = LocalDateTime.of(startDate, LocalTime.of(0, 0, 0));
LocalDateTime endDateTime = startDateTime.plusDays(7).minusSeconds(1);
System.out.println(startDate.getDayOfWeek() + "(" + startDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'hh:mm:ss'Z'")) + ")");
System.out.println(endDate.getDayOfWeek() + "(" + endDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'hh:mm:ss'Z'")) + ")");
输出:
星期一(2019-06-10T12:00:00Z)
SUNDAY(2019-06-16T11:59:59Z)