一、問題表現
二、輸出結果
三、出現問題的原因
四、總結
本文主要介紹Java使用YYYY-MM-dd格式化時間時可能出現的問題,出現問題的原因以及解決問題的方法。一、問題表現
1@Test
2public void test() throws Exception {
3 SimpleDateFormat sj1 = new SimpleDateFormat("YYYY-MM-dd");
4 SimpleDateFormat sj2 = new SimpleDateFormat("yyyy-MM-dd");
5 Calendar c = Calendar.getInstance();
6 /* 2021年12月25日周六 */
7 c.set(2021,12-1,25);
8 System.out.println("YYYY-MM-dd = " + sj1.format(c.getTime()));
9 System.out.println("yyyy-MM-dd = " + sj2.format(c.getTime()));
10 System.out.println("---");
11 /* 2021年12月26日 周日 */
12 c.add(Calendar.DATE, 1);
13 System.out.println("YYYY-MM-dd = " + sj1.format(c.getTime()));
14 System.out.println("yyyy-MM-dd = " + sj2.format(c.getTime()));
15 }
16}
二、輸出結果
1YYYY-MM-dd = 2021-12-25
2yyyy-MM-dd = 2021-12-25
3---
4YYYY-MM-dd = 2022-12-26
5yyyy-MM-dd = 2021-12-26
三、出現問題的原因
由於yyyy與YYYY的含義不同,當時間為每年的最後一周時,兩種不同格式的日期會出現年份不同的結果。所以在實際開發時建議使用yyyy-MM-dd格式化時間。