Java中如何为LocalDate获取的上周起始日期添加HH:MM:SS格式
解决方案
你想要的是上周起始日期(周一)的00:00:00时间点,用LocalDateTime实现的话可以这么写:
方式一:基于原逻辑调整(贴合原有代码)
LocalDateTime beginDateTime = LocalDate.now() .with(ChronoField.DAY_OF_WEEK, 1) .minusDays(8) .atStartOfDay();
逻辑说明:先按原逻辑算出上周周一的LocalDate,再通过LocalDate的atStartOfDay()方法直接得到当天0点整的LocalDateTime,自带00:00:00的时间格式。
方式二:直接用LocalDateTime处理(语义更清晰)
LocalDateTime beginDateTime = LocalDateTime.now() .with(ChronoField.DAY_OF_WEEK, 1) .with(ChronoField.HOUR_OF_DAY, 0) .with(ChronoField.MINUTE_OF_HOUR, 0) .with(ChronoField.SECOND_OF_MINUTE, 0) .minusWeeks(1);
逻辑说明:LocalDateTime本身包含时间部分,所以没有atStartOfDay()方法,直接把时分秒设为0,再减去一周,就能得到上周周一的0点整时间。
内容的提问来源于stack exchange,提问作者sgsg
相关产品推荐
相关产品推荐

