我是一名新開發人員,我一直堅持這一段時間,如何將以下日期轉換爲它的UTC版本(無需utc前綴/後綴)在JS ?moment js,將EST字符串轉換爲UTC
05/03/2016 16:00
我想:
var b = "05/03/2016 16:00";
moment.utc(b).format();
"2016-05-03T16:00:00Z"
我想最終的結果是完全按照B,但其UTC等價。我錯過了什麼?
我是一名新開發人員,我一直堅持這一段時間,如何將以下日期轉換爲它的UTC版本(無需utc前綴/後綴)在JS ?moment js,將EST字符串轉換爲UTC
05/03/2016 16:00
我想:
var b = "05/03/2016 16:00";
moment.utc(b).format();
"2016-05-03T16:00:00Z"
我想最終的結果是完全按照B,但其UTC等價。我錯過了什麼?
你缺少輸入格式和輸出格式。
沒有輸入格式,您的日期可能會被解釋爲5月3日或3月5日,這取決於文化。
沒有輸出格式,一刻也沒有辦法知道你想要什麼樣的字符串,所以它默認爲全ISO8601擴展格式。
您也錯過了轉換。如果輸入的是本地時間,你想UTC,那麼你應該用moment(...)
解析它,然後將其與.utc()
功能轉換爲UTC。
總結:
moment(b, 'MM/DD/YYYY HH:mm').utc().format('MM/DD/YYYY HH:mm')
另外請注意,它是從哪裏運行代碼的轉換本地時間。在你問的問題中,你問過關於EST。如果您的當地時區是其他地方,那麼EST不適用於上述情況。您需要使用moment-timezone加載項來執行以下操作:
moment(b, 'MM/DD/YYYY HH:mm', 'America/New_York').utc().format('MM/DD/YYYY HH:mm')
moment(b).utc();
將其更改爲UTC時間,你仍然可能需要參數添加到格式(),以確保它顯示你最初寫的方式。
moment(b).utc().format("MM/DD/YYYY HH:mm");
非常感謝! – devdropper87
@ devdropper87這個答案比較好,希望它有幫助 – Cameron637