簡體   English   中英

將從服務器收到的 UTC 日期轉換為 Javascript 中的本地時區日期

[英]Convert UTC date received from server to local timzone date in Javascript

使用 Javascript,我想在客戶端的瀏覽器中將從服務器接收到的 UTC 日期轉換為本地時區日期 object。

我必須在 Javascript 中使用哪個功能/代碼? 例如,轉換此 UTC 日期:'2021-01-20T17:40:35'。

ECMA-262 支持格式“2021-01-20T17:40:35”,但沒有時區,它被解析為本地。 如果您希望將其解析為 UTC,只需添加“Z”將偏移量設置為 0,因此:

new Date('2021-01-20T17:40:35' + 'Z')

將字符串解析為 UTC。 然后本地日期和時間由各種get*方法返回,或者只是toString

但是,如果您想要一個真正強大的 function,請手動解析它,例如

// 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'}));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM