java 设置周一时间_Java的localdate如何调整一周起始日为周日

本文探讨了如何在Java中使用TemporalAdjusters调整LocalDate,以便找到上周的特定星期几,如周日。通过理解TemporalAdjuster的工作原理,以及WeekFields和DayOfWeek的概念,创建了一个自定义的TemporalAdjuster工厂类CustomTemporalAdjusters,能够获取上周的任何指定星期几。
摘要由CSDN通过智能技术生成

外国的文化习惯和外国的代码设计其实还是有很大差别的,毕竟代码是全球的人都要用的,是不能强行说偏袒某一方的(不像现在的漂亮国,扯远了),只能说代码里唯一借鉴了外国的只是用字母而已,其实代码设计是一个逻辑思考过程,题主太焦急了一点,不妨,我们慢慢来看

首先是TemporalAdjusters.previous方法,在该方法的注释中已经提到了,该方法采用的时间字段是ChronoField.DAY_OF_WEEK,也就是按照一周7天来算,也就是满打满算的一周七天,并且返回上一次出现的你传入的DayOfWeek

注意这里说的是上一次的,而不是上一周的

有区别么?当然有,举个例子,还是用你的LocaDate.of(2020,10,21),虽然TemporalAdjusters.previous(DayOfWeek.SUNDAY)

最终返回的是2020-10-18,那如果填入的是DayOfWeek.MONDAY,也就是上一个周一,会是多少呢?难道会是2020-10-12日么?也就是上一周周一。不是的,答案其实是2020-10-19,也就是上一个周一,不是上一周的周一

所以首先在方法选型上,可能就不太对口,更不用谈是不是周一开始一周还是周日开始一周了,用这个方法是完成不了根据一个时间取到上一周的某个星期的问题

(如果不想看下面的思路,可能写的有点绕,容易混乱,可以直接拖到最下面查看最终代

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值