使用 Javascript,我想將從服務器接收到的 UTC 日期轉換為客戶端瀏覽器中的本地時區日期物件。
我必須在 Javascript 中使用哪個函式/代碼?例如,轉換此 UTC 日期:'2021-01-20T17:40:35'。
uj5u.com熱心網友回復:
ECMA-262 支持格式“2021-01-20T17:40:35”,但沒有時區,它被決議為本地。如果您希望將其決議為 UTC,只需添加“Z”將偏移量設定為 0,因此:
new Date('2021-01-20T17:40:35' 'Z')
將字串決議為 UTC。然后本地日期和時間由各種get*方法回傳,或者只是toString。
但是,如果您想要一個真正強大的功能,請手動決議它,例如
// Get the parts
let [Y, M, D, H, m, s] = '2021-01-20T17:40:35'.split(/\D/);
// Treat as UTC
let date = new Date(Date.UTC(Y, M-1, D, H, m, s));
關于格式化日期有很多問題。任何不包含字符“UTC”或“ISO”的toString方法都將根據主機系統的時區和 DST 區域設定回傳本地值。
例如
let [Y, M, D, H, m, s] = '2021-01-20T17:40:35'.split(/\D/);
let date = new Date(Date.UTC(Y, M-1, D, H, m, s));
// Formatted as specified in ECMA-262
console.log(date.toString());
// So-called "locale aware" string, based on language
console.log(date.toLocaleString());
// In another timezone for Antarctica/McMurdo
console.log(date.toLocaleString('default', {timeZone: 'Antarctica/McMurdo', timeZoneName: 'short'}));
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/411005.html
標籤:
