有没有办法使用nodejs从系统(例如:-ubuntu)获取本地时区?
我使用 moment.js 来提取日期和时间值。但也找不到提取时区的方法。
最佳答案
现有答案会告诉您当前的时区偏移量,但如果您比较历史/ future 时间点,您会遇到问题,因为这不适合夏令时更改。
在许多时区中,偏移量在一年中会发生变化,并且这些变化发生在不同的日期或根本不发生,具体取决于纬度。如果您只有 UTC 时间和偏移量,则您永远无法确定一年中其他时间在该位置的偏移量是多少。
例如,UTC+2:00 偏移量可以指夏季的巴塞罗那或全年的象牙海岸。 2 小时偏移将始终显示科特迪瓦的正确时间,但在巴塞罗那的半年中将显示 1 小时。
Check out this great article covering the above.
我们如何解决所有这些时区问题?嗯,很简单:
- 以 UTC 保存所有时间
- 存储此事件发生地点的时区字符串
在现代浏览器或 node.js 中,您可以像这样获取本地 IANA 时区字符串:
Intl.DateTimeFormat().resolvedOptions().timeZone // eg. 'America/Chicago'
然后您可以在 Luxon 等库中使用此时区字符串以帮助抵消您捕获的 UTC 时间。
DateTime.fromISO("2017-05-15T09:10:23", { zone: "Europe/Paris" });
关于node.js - 如何使用nodejs从系统中获取本地时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38915418/