‘YYYY’與‘yyyy’的區別(時間戳轉換時間問題)


今天客服就反饋了一個問題,時間出現了一個很詭異的問題:日期時間顯示的是2020-12-30,現在應該是2019-12-30才對
通過debug發現,服務端傳的時間是沒問題的,那就只能是前台時間戳轉換的問題了。

對比發現設置formatter的格式是使用的是‘YYYY-MM-dd HH:mm:ss’,在year轉換時,用的是‘YYYY’,官方文檔用的‘yyyy’,然后我就將大寫改為小寫試了一下,然后問題就解決了。
也就是說問題在year轉換時出的問題,Google了一下,確實有這方面的問題,解釋是這么說的:
YYYY是以周來計算年的,意思是當天所在周屬於的年份,一周從周日開始算計算,周六結束,只要本周跨年,那么這一周就算下一年的。
也就是說:年份如果用Y會是這周的年份,y才是標准的年份。
這一點官方文檔沒說明,所以還是自己注意點吧,以后轉換日期格式的時候記得還是用“yyyy-MM-dd”這種格式吧,避免出現這種情況衍生的bug。

使用DateFormatter轉換時間格式,需要的參數如下:
G: 公元時代,例如AD公元
yy: 年的后2位
yyyy: 完整年
MM: 月,顯示為1-12
MMM: 月,顯示為英文月份簡寫,如 Jan
MMMM: 月,顯示為英文月份全稱,如 Janualy
dd: 日,2位數表示,如02
d: 日,1-2位顯示,如 2
EEE: 簡寫星期幾,如Sun
EEEE: 全寫星期幾,如Sunday
aa: 上下午,AM/PM
H: 時,24小時制,0-23
K:時,12小時制,0-11
m: 分,1-2位
mm: 分,2位
s: 秒,1-2位
ss: 秒,2位
S: 毫秒

 常用日期結構:
yyyy-MM-dd HH:mm:ss.SSS
yyyy-MM-dd HH:mm:ss
yyyy-MM-dd
MM dd yyyy

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM