javascript 解析纽约时区的日期时间字符串

javascript parse datetime string in NewYork Timezone

我有一个代表纽约当地时间的日期时间字符串。

12/30/2020 12:00 pm

我想在javascript中解析它以获得EPOCH。 解析必须适用于可能处于不同时区的用户。

我现在做的是

moment("07/13/2015 01:45 am -04:00", 'M/D/YYYY h:mm a Z').unix()

但这并不好,因为我必须硬编码

-04:00

并假设我正在解析的日期是东部夏令时。

使用 moment-timezone 插件。

moment.tz("12/30/2020 12:00 pm", "M/D/YYYY h:mm a", "America/New_York").unix()

另外,请注意,不能保证任何特定时区的规则在未来仍然有效。谁知道到 2020 年美国政府是否不会像 2007 年那样再次更改 DST 规则。当然,它不太可能影响 12 月的日期,但在一般情况下你不能确定。特别是当你考虑到其他时区经常发生变化时——全球每年大约有十几个或更多的变化。

哦,还有一个小问题......你说:

... to get EPOCH.

单词纪元的意思是"the start of something"。 Unix 纪元是 1970-01-01T00:00:00Z。从来没有别的。您从 unix 时间戳返回的值是基于 的纪元 - 但它本身并不是一个纪元。 "Epoch Time" 是用词不当。 (还有其他用于计算的纪元,但与 Unix 时间无关)。