[英]Convert unix timestamp to specific timezone
我在 unix 中有一個時間戳,如下所示,位於+2:00
時區,但我想使用dayjs
獲得相同的日期,但在+0:00
時區,
console.log("TIMESTAMP: ", dayjs.unix(timestamp).format());
> TIMESTAMP: 2021-05-20T13:46:07+02:00
console.log("FIXED TIMESTAMP: ", dayjs.unix(timestamp).tz("Europe/London").format());
> FIXED TIMESTAMP: 2021-05-20T12:46:07+01:00
上面我嘗試使用tz("Europe/London")
執行此操作,但是,我不知道為什么,我的日期在“+01:00”時區...,為什么這個函數不返回我新的時間戳轉換為“+0:00”?
謝謝你的幫助!
您必須包含幾個擴展庫,以便 UTC 和時區格式在 dayjs 中工作。 UTC 和時區 Javascript 文件都是必需的。 我使用了 1.10.7 版本,因為它們是最新的。
如果您在瀏覽器中工作,請包括以下來源。 HTML:
<script src="https://unpkg.com/dayjs@1.10.7/dayjs.min.js"></script>
<script src="https://unpkg.com/dayjs@1.10.7/plugin/utc.js"></script>
<script src="https://unpkg.com/dayjs@1.10.7/plugin/timezone.js"></script>
JavaScript:
dayjs.extend(window.dayjs_plugin_utc);
dayjs.extend(window.dayjs_plugin_timezone);
let printFormat = 'hh:mm:ssA';
let nowLocal = dayjs().utc().local().format(printFormat);
console.log(nowLocal);
console.log(dayjs().tz("America/New_York").format(printFormat));
console.log(dayjs().tz("Asia/Tokyo").format(printFormat));
對於您的嘗試有幾點注意事項,“tz”(時區)對象不會掛起 unix() 函數,它直接附加到頂級 dayjs 對象。 上面的示例采用本地時間,並以 hh:mm:ssAM|PM 格式在三個不同的時區打印。 unix 函數接受一個 Unix 時間戳並返回一個 DayJS 對象。
這是運行上述示例的 JSFiddle: https ://jsfiddle.net/e4x507p3/2/
請注意,如果您在瀏覽器中使用擴展,這應該可以工作,如果您在 NodeJS 中工作,則需要不同的方法: https ://day.js.org/docs/en/plugin/loading-into-節點
import dayjs from 'dayjs'
import customParseFormat from 'dayjs/plugin/customParseFormat.js'
import utc from 'dayjs/plugin/utc.js'
import timezone from 'dayjs/plugin/timezone.js'
dayjs.extend(customParseFormat)
dayjs.extend(utc)
dayjs.extend(timezone)
const datetime = dayjs.unix(1653134400)
console.log(datetime.tz('UTC').format('YYYY-MM-DD HH:mm:ss Z')) // 2022-05-21 12:00:00 +00:00
console.log(
datetime.tz('America/Los_Angeles').format('YYYY-MM-DD HH:mm:ss Z') // 2022-05-21 05:00:00 -07:00
)
console.log(datetime.tz('Asia/Shanghai').format('YYYY-MM-DD HH:mm:ss Z')) // 2022-05-21 20:00:00 +08:00
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.