LocalDateTime格式化日期年份錯誤

2021-10-13 07:10:41 字數 559 閱讀 5630

今天(2020-12-28)在使用之前寫的乙個日期格式化的時候,發現了乙個問題,年份不是2020,而是2021。檢視了**和呼叫之後,均沒找到問題。

public string getformatdatestring()

最後只能看官方的使用說明。最後在datetimeformatter的說明裡找到了原因。

官網鏈結

從上面的說明可以看出,y(小寫)表示的是根據時區的來計算的年份,也就是日期的年份。而y(大寫)表示的是根據周來計算的年份。而這週(2020-12-28到2021-01-03)正好跨了2020和2023年,所以今天格式化出來的日期變成了2021 。這個問題在這種特殊情況下才會提現出來,正好被我測試到。

關於localdatetime的詳細使用,可以參照我的這篇博文。

jdk8中的localtime,localdate,localdatetime與jdk8之前的date,******dateformat比較

LocalDateTime格式轉換

背景 由於需要擷取小時,前端入參只能傳來年月日格式,於是有以下操作 localdate格式 yyyy mm dd localdatetime 格式 yyyy mm ddthh mm datetimeformatter與string類之間的轉換 datetimeformatter df datetim...

LocalDateTime多種格式同一轉換處理

場景 在程式中有可能會接收到不同的string型別的時間,需要統一轉換為localdatatime格式 思路 先使用正規表示式,將除數字以外的符號統一替換為相同符號,之後按照符號進行分割,分割之後,按照年 月 日 三個一組劃分為乙個localdatatime時間 private static fin...

LocalDateTime的簡單使用

一開始老是忘記怎麼使用localdatetiem的具體用法,接下來做一下簡單的總結。public static void main string args localdatetime.parse charsequence text 方法中預設datetimeformatter為 yyyy mm dd...