繁体   English   中英

日期格式为 iso8601

[英]DateFormat to iso8601

根据标准 ISO8601,包含起始年份的第一个星期四的那一周(正式的 ISO 定义)( https://en.wikipedia.org/wiki/ISO_8601

但是2021.12.30(Thursday)是2021年,为什么SimpleDateFormat还是output 2022?

SimpleDateFormat sdf1 = new SimpleDateFormat("YYYY-MM-dd"); // Week of Year
Calendar cal = Calendar.getInstance();
cal.set(2021, Calendar.DECEMBER,30);
System.out.println(sdf1.format(cal.getTime()));  // output  2022-12-30

顺便说一句,我知道 YYYY 和 yyyy 之间的区别如何让我的时间符合 ISO8601 标准?

如果您只想 output 中定义的日期的正确格式Calendar ,您可以只使用yyyy代替。

“周年”旨在用于周日期,例如“2022-W01-1”。

请参考以下链接:

误用周年 - https://errorprone.info/bugpattern/MisusedWeekYear

SimpleDateFormat - https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM