【发布时间】:2021-12-18 22:29:19
【问题描述】:
我在 unix 中有一个时间戳,如下所示,它位于 +2:00 时区,但我想获得相同的日期,但使用 +0:00 时区,使用 dayjs,
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”?
感谢您的帮助!
【问题讨论】:
-
"+2:00" 是一个偏移量。 “时区”的概念通常包括一个地方(例如“欧洲/伦敦”)或地理区域(例如“中欧时间”)的偏移和夏令时的历史变化。许多偏移量映射到多个时区。虽然“欧洲/伦敦”在一年中的某些时候偏移了 +0,但在上个世纪,它还在一年中的其余时间断断续续地使用 DST (+1),并且在短时间内有“双 DST”(即+2) 全年无休。
-
哦,2021 年 5 月 20 日,伦敦实行夏令时,因此 +1。使用位置来获得特定的偏移量是令人担忧的,因为地点会不时改变它们的偏移量,而不仅仅是因为 DST。如果您想要 +0,则使用“UTC”作为位置/时区。
标签: javascript typescript datetime unix