【問題解決】使用YYYY-MM-dd時間轉換問題
測試邏輯:
- 建立兩個日期格式化,一個是出問題的
YYYY-MM-dd
,另一個是正確用法yyyy-MM-dd
- 分別去格式化兩個不同的日期:2020年12月26日(週六),2020年12月27日(週日)
具體程式碼如下:
public class Tests {
@Test
public void test() throws Exception {
SimpleDateFormat df1 = new SimpleDateFormat("YYYY-MM-dd");
SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
// 2020年12月26日週六
c.set(Calendar.DATE, 26);
System.out.println("YYYY-MM-dd = " + df1.format(c.getTime()));
System.out.println("yyyy-MM-dd = " + df2.format(c.getTime()));
// 分割線
System.out.println("========================");
// 2020年12月27日 週日
c.add(Calendar.DATE, 1);
System.out.println("YYYY-MM-dd = " + df1.format(c.getTime()));
System.out.println("yyyy-MM-dd = " + df2.format(c.getTime()));
}
}
跑一下測試,可以看到輸出結果如下:
YYYY-MM-dd = 2020-12-26
yyyy-MM-dd = 2020-12-26
========================
YYYY-MM-dd = 2021-12-27
yyyy-MM-dd = 2020-12-27
- 2020年12月26日(週六),兩種格式化都正確
- 2020年12月27日(週日),
YYYY-MM-dd
出了問題,年份到了2021年
問題原因
為什麼YYYY-MM-dd
格式化2020年12月27日的時候,會到2021年呢?
因為YYYY是week-based-year,表示:當天所在的周屬於的年份,一週從週日開始,週六結束,只要本週跨年,那麼這周就算入下一年。
所以2020年12月27日那天在這種表述方式下就已經到 2021 年了。
而當使用yyyy的時候,就還是 2020 年。(國外聖誕節 12月25日以後為新一年)
相關文章
- 使用正規表示式優雅的解決 SpringMVC 時間轉換問題SpringMVC
- 關於時間轉換 SimpleDateFormat 的使用的問題ORM
- 轉:Oracle 臨時表空間過大問題解決Oracle
- sql server的getdate()轉換成yyyy-mm-dd格式問題SQLServer
- LINUX 解決時間同步問題(NTP)Linux
- 解決MongoDB儲存時間時差的問題MongoDB
- 解決「問題」,不要解決問題
- 解決Redmine建立&更新問題時很慢的問題
- imp/EXP 表空間轉換問題
- Java 8 的日期與時間問題解決方案Java
- 若依解決VUE前端時間顯示問題Vue前端
- swap空間不足問題解決
- 使用回溯演算法解決N皇后問題以及間隔排列問題演算法
- Android 解決Activity切換時出現白屏問題Android
- Android解決Activity切換時出現白屏問題Android
- 發現問題,解決問題
- 解決imp匯入時,使用源DB中表空間名的問題
- 解決 go get 超時問題Go
- 暫時解決的中文問題
- 臨時表空間ORA-1652問題解決
- 解決Oracle臨時表空間佔滿的問題Oracle
- Logstash 時間轉換(YYYY-MM-dd HH:mm:ss轉Unix時間)
- 解決掛起/休眠時遭遇kernel panic問題(轉)
- 解決內、外網同時訪問問題
- 解決Docker容器時區及時間不同步的問題Docker
- 請教FOP轉換pdf時中文問題
- 解決FRA空間滿的問題
- 解決問題
- 【轉】css解決相容的問題CSS
- 回溯法解決喝酒問題 (轉)
- angular5使用httpclient時解決跨域問題AngularHTTPclient跨域
- 使用nodeAPI時遇到非同步問題的解決方法API非同步
- 解決vue使用Sass時候的報錯問題Vue
- 快速解決cmd中不同盤之間不能切換的問題
- ORA-21779: 持續時間不活動 問題解決
- oracle的臨時表空間解決問題的步驟Oracle
- 解決吞吐效能問題時的思路
- 解決代理連線超時問題