背景
項目應用的地方存在夏令時,這就要求程序中存儲和使用的時間格式為UTC,所以在調用接口時存在將本地時間轉成UTC時間格式以及獲取接口數據后將UTC時間轉換成本地時間顯示的兩個動作。
遇到的坑
moment格式化分為local和utc兩種,分別對應defaultFormat和defaultFormatUtc,需要注意moment轉成utc后再使用format,就會使用defaultFormatUtc對應的格式。
詳解
moment(local)
默認時間格式defaultFormat為YYYY-MM-DDTHH:mm:ssZ,所以
moment('2020-08-24 08:00:00').format(); 	//2020-08-24T08:00:00+08:00
 
        moment(local)自定義defaultFormat
通過moment.defaultFormat='YYYY-MM-DD HH:mm:ss'設置默認格式為'YYYY-MM-DD HH:mm:ss',所以
moment('2020-08-24 08:00:00').format(); 	//2020-08-24 08:00:00
 
        moment(utc)
默認UTC時間格式defaultFormatUtc為YYYY-MM-DDTHH:mm:ss[Z],所以
moment('2020-08-24 08:00:00').utc().format();	//2020-08-24T00:00:00Z
 
        moment(utc)自定義defaultFormatUtc
通過moment.defaultFormatUtc='YYYY-MM-DDTHH:mm:ss.SSS[Z]'設置默認格式為'YYYY-MM-DDTHH:mm:ss.SSS[Z]',所以
moment('2020-08-24 08:00:00').utc().format(); 	//2020-08-24T00:00:00.000Z
 
        