栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java中日期格式“YYYY”与“yyyy”的区别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java中日期格式“YYYY”与“yyyy”的区别

今天运维反馈了一个问题,现象就是12月26号至29号(写文章日期),日期形式的文件夹名称出现异常:

代码:

DateUtil.format(new Date(), "YYYYMMdd");

我使用的hutool工具类,导致一开始我以为是工具的问题,在hutool官网上查找了好久,后来我测试了SimpleDateFormat,发现也是一样,这说明是日期年份格式的本身问题,下面也说明了这点。
我找到一些较为官方的解释:

针对2015-12-26、2015-12-27这2个日期分别使用*"YYYYMM和yyyyMM格式化**,得到的结果分别是:
YYYYMM: 201512、201612
yyyyMM: 201512、201512
原因定位到YYYYMM"格式化这里面。查看JavaDoc,发现上面描述;
y表示Year,Y表示Week Year。r> 'lf week year ‘Y’ is specified and the calendar doesn’t support any week years, the calendar year (‘y’) is used instead.The support of week years can be tested with a call to getCalendar().isWeekDateSupported()."如果Week Year不支持,同时又使用了Y的话,那么会默认当成y使用。
Week 'Year又是什么意思呢?
"Week number according to the IS0-8601 standard,weeks starting on Monday. The first week of the year is the weekthat contains that year’s first Thursday (=‘First 4-day week’).The highest week number in a year is either 52 or 53.'根据ISO-8601标准,每周从星期一开始计算。每年第一个星期四所在的那个星期为当年的第一周。(1月份至少有4天在该星期)

一周从周日开始,周六结束。刚好2021-12-26是周日,星期已够,那么新的一个星期只能算在新的一年里面,所以年份就出现了跨时空。

总结:
1.不要那么多的想当然,要知其然还要知其所以然。以为是一样,其实不一样。要追根溯源,打破砂罐问到底。其实我在开发时也是做了大量的测试的,然并卵。
2.前人的经验都是经过考验的,还是要存有敬畏之心。要是遵循这种老师一开始教的日期格式“yyyy-MM-dd”,也不会出现这种隐患。
3.任重而道远呀。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/684762.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号