[英]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.