Javascript,如何将各种日期格式转换为通用格式

时间:2019-03-05 17:50:43

标签: javascript date timezone

我有几种日期数据来源,包括日期和时间。从api或页面抓取返回的几种不同格式(都是字符串)。在我看来,使用GMT作为基础并在前端使用Date.parse将UI转换为本地时间是可行的。但是,我遇到了一个数据源,该数据源以以下格式返回日期:

“美国东部时间2019年2月15日凌晨2点”

我现在正在重新考虑我的约会架构以及GMT是否是最佳选择。所有来源日期/时间均为北美。

我试图了解是否有任何日期库或方法可以处理“美国东部时间凌晨2点”,或者我是否必须自己进行转换(也要回滚日期)。目前,将EST转换为GMT只是将其转换回前端的EST对我来说没有意义。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

第一部分02/15/2019 2 AM可以用Moment.jsLuxonDate-fns之类的库进行解析。

但是,不能在全球范围内解析时区缩写。典范示例是缩写CST,它可以解释为美国中央标准时间,澳大利亚中央标准时间,中国标准时间或古巴标准时间。还存在许多其他歧义。

因此,只有当您已经知道将要遇到的所有缩写以及要如何解释它们时,才可以将缩写映射到时区偏移量。例如,如果您只关心美国大陆的时间,则可以映射以下内容:

EDT = -4
EST = -5
CDT = -5
CST = -6
MDT = -6
MST = -7
PDT = -7
PST = -8

但是,如果要添加阿拉斯加和夏威夷,则可能需要添加:

AKDT = -8
AKST = -9
HADT = -9
HAST = -10
HST = -10

请注意,HSTHAST都如何用于夏威夷?两者都是在那里常用的。即使您决定要HST,对于阿拉斯加的阿留申群岛,您仍然需要HASTHADT-与阿拉斯加其他地区的时区不同。

那其他美国领土呢,您的数据包括其中吗?

您可以看到事情如何变得相当复杂。通常,不应解析时区缩写,而应仅用于显示给人类。如果要生成需要稍后解释的数据,则该数据应包含时区偏移。