【問題解決】使用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
- LINUX 解決時間同步問題(NTP)Linux
- 解決docker換源問題Docker
- 解決MongoDB儲存時間時差的問題MongoDB
- 若依解決VUE前端時間顯示問題Vue前端
- 臨時表空間ORA-1652問題解決
- Java 8 的日期與時間問題解決方案Java
- C#、IIS獲取時間帶星期問題解決C#
- 解決 go get 超時問題Go
- 解決Docker容器時區及時間不同步的問題Docker
- 快速解決cmd中不同盤之間不能切換的問題
- 使用nodeAPI時遇到非同步問題的解決方法API非同步
- 解決vue使用Sass時候的報錯問題Vue
- angular5使用httpclient時解決跨域問題AngularHTTPclient跨域
- 使用 Rxjs 解決 Angular Component 之間的通訊問題JSAngular
- (一) 溫度轉換問題
- mysql隱式轉換問題MySql
- Maven解決repository不更換的問題Maven
- 提問題比解決問題更重要
- 解決代理連線超時問題
- 解決吞吐效能問題時的思路
- 瞭解GaussDB效能調優之隱式轉換,解決慢SQL問題SQL
- 完美解決setInterval在瀏覽器切換時加速的問題瀏覽器
- char[] 轉換string時的自動截斷問題
- 用SQL解決有向圖問題(轉)SQL
- Lumen 中使用 jwt 時多 guard 的問題解決方案JWT
- 解決使用jpa的實體物件轉json符串時懶載入問題物件JSON
- js把時間戳轉換成時間格式yyyy-MM-dd HH:mm:ssJS時間戳
- 解決ajax中ie快取問題(手動新增時間戳)快取時間戳
- idea 使用日常問題 使用maven外掛 打包沒問題 但是使用 mvn命令打包失敗的問題解決IdeaMaven
- 全域性替換 ‘/home’ 為 ‘/’ 的問題解決!
- 同時使用mybatis和mybatis-plus時,pageHelper失效問題解決MyBatis
- 解決無法使用VI的問題
- vue使用iview Timeline 時間軸不顯示渲染的效果問題解決辦法VueView
- C#操作時區轉換時遇到的一些問題和解決方法分享C#
- 前端inline元素間隙問題解決辦法前端inline
- AI換臉:FaceFusion 3.5.0更新,解決老版本無法使用問題!AI
- [解決問題] Vagrant nginx 站點配置問題(ThinkPHP HTML 無法調跳轉)NginxPHPHTML