yyyy与YYYY的区别
yyyy代表年份的完整四位数表示,严格按照日历年份显示。例如2023年12月31日会显示为2023
。
YYYY代表"周年份"(Week Year),基于ISO 8601标准,与周数相关。它取决于一周从周一开始且至少包含4天的新年份。例如2023年12月31日可能显示为2024
,因为该周日属于2024年的第一周。
适用场景
使用yyyy的场景:
- 日常日期显示(如生日、合同日期)
- 财务年度记录
- 传统日历系统
使用YYYY的场景:
- 周报或周计划系统
- 国际标准化报告(如ISO周数)
- 需要按周统计数据的场景
示例代码
// 使用yyyy的示例
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(sdf1.format(new Date())); // 输出如2023-12-31
// 使用YYYY的示例
SimpleDateFormat sdf2 = new SimpleDateFormat("YYYY-MM-dd");
System.out.println(sdf2.format(new Date())); // 可能在12月末输出2024-12-31
注意事项
大多数情况下应优先使用yyyy
,仅在明确需要周历年时才使用YYYY
。错误的格式选择可能导致年末/年初的日期显示异常。