有没有办法使用nodejs从系统(例如:ubuntu)获取本地时区?
我使用 moment.js 提取日期和时间值。但也找不到提取时区的方法。
现有的答案将告诉您当前的时区偏移量,但是如果您要比较历史/未来的时间点,您将会遇到问题,因为这无法满足夏令时的变化。
在许多时区,偏移量全年都会变化,并且这些变化发生在不同的日期或根本不发生,具体取决于纬度。如果您只有 UTC 时间和偏移量,您永远无法确定一年中其他时间该位置的偏移量是多少。
例如,UTC+2:00 偏移量可能指夏季的巴塞罗那或全年的科特迪瓦。在科特迪瓦,2 小时的偏移将始终显示正确的时间,但在巴塞罗那,半年会出现 1 小时的偏移。
查看这篇涵盖上述内容的精彩文章。 https://spin.atomicobject.com/2016/07/06/time-zones-offsets/
我们如何解决所有这些时区问题?嗯,这很简单:
- 保存所有 UTC 时间
- 存储此事件发生地点的时区字符串
在现代浏览器或node.js中,您可以像这样获取本地IANA时区字符串:
Intl.DateTimeFormat().resolvedOptions().timeZone // eg. 'America/Chicago'
然后您可以在库中使用此时区字符串,例如Luxon https://moment.github.io/luxon/帮助抵消您捕获的 UTC 时间。
DateTime.fromISO("2017-05-15T09:10:23", { zone: "Europe/Paris" });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)