讲解:LocalDate with(TemporalField field, long newValue)怎么用!!!!!

全网查了半天,官网api文档也看了,就是不明白这个方法到底什么意思!!!!

还有这种傻x,官网复制黏贴一遍就发出来,浪费时间,让我生气!

前人栽树后人乘凉,写下这篇博客,让后来的小伙伴少走点弯路

如图,我们首先定义一个localDate时间为2019-06-13(周四),接下来定义以周五作为起始,一周7天的weekFields对象

那么下面这段代码什么意思呢?

LocalDate localDate = now.with(weekFields.weekOfYear(), 1);

意思就是获取当前年份,从周五开始的第一个周四,从日历上我们不难看出,2019年第一个周五是1.4

那么从1月4号开始的第一个周四就是1月10号,也就是我们打印的localDate

那么这行代码呢,也就是说从1月10开始,寻找当年第一个周五的日期即1月4号,也就是我们打印的with

LocalDate with = localDate.with(weekFields.dayOfWeek(), 1);

为了确认这个猜想,我们修改其中一个值为2,如图,大家对比一下是不是确认了我们的猜想

我们再把周五换成周一对比看下

完全符合预计结果,感觉看明白了,就点个赞吧!!!!!

 

-------------------分割线   另外我研究了好长一段时间,终于明白 minimalDaysInFirstWeek这个参数的意义了

我们就看上图代码,第一个周一是7号,7号前面只有6天,所以我们得到的结果是1月10号,如果我们定义minimalDaysInFirstWeek这个参数为6(只要小于7都满足条件,参数默认必须大于等于1)的话,那我们得到的结果就会是1月3号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值