别再踩坑, yyyy-MM-dd和YYYY-MM-dd格式化日期的区别你知道吗?

简介: 别再踩坑, yyyy-MM-dd和YYYY-MM-dd格式化日期的区别你知道吗?

前言:最近发现了Date包中的源码级bug,来与大家分享

本篇文章记录的基础知识,适合在学Java的小白,也适合复习中,面试中的大佬🤩🤩。
如果文章有什么需要改进的地方还请大佬不吝赐教

💖个人主页
💖谱尼学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

目录
相关文章
|
1天前
yyyy-MM-dd'T'HH:mm:ss.SSSZZ和yyyy-MM-dd'T'HH:mm:ss.SSSXXX之间的区别
【5月更文挑战第7天】yyyy-MM-dd'T'HH:mm:ss.SSSZZ和yyyy-MM-dd'T'HH:mm:ss.SSSXXX之间的区别
8 0
|
22天前
|
JavaScript
Vue 获取当前日期(时间,格式为YYYY-MM-DD HH:mm:ss)
Vue 获取当前日期(时间,格式为YYYY-MM-DD HH:mm:ss)
26 0
|
1月前
|
前端开发 Java
关于时间格式yyyy-M-d或yyyy-MM-d到yyyy-MM-dd的转换
关于时间格式yyyy-M-d或yyyy-MM-d到yyyy-MM-dd的转换
24 0
|
4月前
joda time将10位或者13位时间戳转为标准日期格式: yyyy-MM-dd HH:mm:ss
joda time将10位或者13位时间戳转为标准日期格式: yyyy-MM-dd HH:mm:ss
|
11月前
|
JavaScript 前端开发
【JS】获取当前时间,且格式为yyyy-MM-dd hh:mm:ss
【JS】获取当前时间,且格式为yyyy-MM-dd hh:mm:ss
146 0
|
Java 关系型数据库 BI
ES 中时间日期类型 “yyyy-MM-dd HH:mm:ss” 的完全避坑指南
ES 中时间日期类型 “yyyy-MM-dd HH:mm:ss” 的完全避坑指南
ES 中时间日期类型 “yyyy-MM-dd HH:mm:ss” 的完全避坑指南
|
11月前
|
Java
Java时间格式转换yyyyMMddHHmmss--yyyy-MM-dd HH:mm:ss
Java时间格式转换yyyyMMddHHmmss--yyyy-MM-dd HH:mm:ss
172 0
|
11月前
|
Java
java中形如yyyy-MM-dd‘T‘HH:mm:ss.SSSZ 转化成各种格式的问题
java中形如yyyy-MM-dd‘T‘HH:mm:ss.SSSZ 转化成各种格式的问题
|
11月前
|
Java
LocalDateTime序列化成yyyy-MM-dd HH:mm
LocalDateTime序列化成yyyy-MM-dd HH:mm
140 0
yyyy-MM-dd和YYYY-MM-dd不是一样的吗?
最近的一个项目中遇到了一个非常有趣的bug,原来yyyy-MM-dd和YYYY-MM-dd是有差异的,具体有什么不同呢?