前言:最近发现了Date包中的源码级bug,来与大家分享
本篇文章记录的基础知识,适合在学Java的小白,也适合复习中,面试中的大佬🤩🤩。
如果文章有什么需要改进的地方还请大佬不吝赐教
你知道yyyy-MM-dd和YYYY-MM-dd格式化日期有什么区别吗
这里yyyy-MM-dd对于年份取值取得是当天所在的这个年份
而YYYY-MM-dd它所取的年份是本周所在的这个年份
这里我们就要注意一个问题
如果我们所格式化的这个日期它所在的周是一个跨年周的话 , 那么这里所取的年份就是第二年的年
接下来我们找一个case验证一下:
通过查看日历我们可以看到2021年12月31号它所在的周是一个跨年周
它这周开始于21年12月26号,结束于22年1月2号
接下来我们来演示一下
首先看代码我们分别创建了yyyy和YYYY两种日期格式化
然后生成了12月31号的这个日期
然后分别用这两种格式化对这两种日期进行输出
出大问题了
通过输出可以看到YYYY输出的日期是2022年,yyyy输出的日期是2021年
这就是它们两个的区别
在平时的开发中尤其对于会员啊,投放啊这种日期敏感型的场景,一定避免使用YYYY这种日期敏感型格式,避免造成不必要的线上故障如果这篇【文章】有帮助到你💖,希望可以给我点个赞👍,创作不易,如果有对Java后端或者对redis感兴趣的朋友,请多多关注💖💖💖
💖个人主页
💖谱尼学java