又双叒有兄弟因为 YYYY-MM-dd 被叫去加班了...

简介: 牙叔教程 简单易懂

牙叔教程 简单易懂


年份请使用小写的yyyy,

如果使用大写的YYYY,

那么

2021-12-26

会变成

2022-12-26

importClass(java.text.SimpleDateFormat)
importClass(android.icu.util.Calendar);
df1 = new SimpleDateFormat("YYYY-MM-dd");
df2 = new SimpleDateFormat("yyyy-MM-dd");
c = Calendar.getInstance();
c.set(Calendar.YEAR, 2021);
c.set(Calendar.MONTH, 11);
// 2021年12月25日周六
c.set(Calendar.DATE, 25);
log("YYYY-MM-dd = " + df1.format(c.getTime()));
log("yyyy-MM-dd = " + df2.format(c.getTime()));
// 分割线
log("========================");
// 2021年12月26日 周日
c.set(Calendar.DATE, 26);
log("YYYY-MM-dd = " + df1.format(c.getTime())); // YYYY-MM-dd = 2022-12-26
log("yyyy-MM-dd = " + df2.format(c.getTime())); // yyyy-MM-dd = 2021-12-26

问题原因

为什么YYYY-MM-dd格式化2021年12月26日的时候,会到2022年呢?

因为YYYY是week-based-year,表示:当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年。

所以2021年12月26日那天在这种表述方式下就已经到 2022年了。

而当使用yyyy的时候,就还是 2021 年。


参考

又双叒有兄弟因为 YYYY-MM-dd 被叫去加班了...

名人名言


思路是最重要的, 其他的百度, bing, stackoverflow, github, 安卓文档, autojs文档, 最后才是群里问问
--- 牙叔教程


声明


部分内容来自网络
本教程仅用于学习, 禁止用于其他用途

相关文章
|
5月前
|
前端开发
将数字4转变成(00:00:04)HH:mm:ss时间格式
将数字4转变成(00:00:04)HH:mm:ss时间格式
33 1
|
5月前
|
安全
第十四届蓝桥杯集训——Date与Calendar函数
第十四届蓝桥杯集训——Date与Calendar函数
40 0
|
Oracle 关系型数据库 Java
Oracle日期格式巨坑,之 HH和HH24,mm和mi。
Oracle日期格式巨坑,之 HH和HH24,mm和mi。
1615 0
指针-更遥远的星期几
指针-更遥远的星期几
136 0
|
前端开发 Java 程序员
一个由“ YYYY-MM-dd ”引发的惨案 元旦来临前警惕
前言 在元旦假期到来之际,我刚好准备出去飘几天,然而在使用一些 App 的时候,竟然被我发现了一个应该是由于前端粗心而导致的 bug,在 2019.12.30 出发,结果 App 上显示的是 2020.12.30(吓得我以为我的订单下错了,此处是不是该把程序员拉去祭天了)。 鉴于可能会有程序员因此而被拉去祭天,而我以前学 Java 的时候就有留意过这个问题,所以我还是把这个问题拿出来说一下,希望能尽量避免这方面的粗心大意(毕竟这种问题也很难测出来)。
116 0
一个由“ YYYY-MM-dd ”引发的惨案 元旦来临前警惕
L1-4 明天几号? (10 分)
输入今天的日期,输出明天的日期。
221 0
|
前端开发 Java 程序员
一个由“ YYYY-MM-dd ”引发的惨案 !
一个由“ YYYY-MM-dd ”引发的惨案 !
245 0
一个由“ YYYY-MM-dd ”引发的惨案 !
SAP MM 史上最偷懒的盘点事务代码MI10
SAP MM 史上最偷懒的盘点事务代码MI10
SAP MM 史上最偷懒的盘点事务代码MI10
|
Java API
昨天你用的 YYYY-MM-dd 被 CTO 捶了吗?
下班回家的路上,习惯性打开 群聊 ,不是为了解答问题,而是不想错过任何一个装 x 的机会。这不,就有胖友聊到一个经典的“神坑”:错误使用 YYYY-MM-dd 格式化时间,导致生产翻车。
昨天你用的 YYYY-MM-dd 被 CTO 捶了吗?