我有几个来源的日期数据,包括日期和时间。从API或页面刮擦中返回几种不同的格式(ast String)。在我看来,将GMT用作基础和日期。前端的Parse将UI转换为当地时间。但是,我遇到了一个正在返回格式日期的数据源:
" 02/15/2019 2 AM EST"
我现在正在重新考虑我的日期架构以及GMT是否是最佳选择。所有来源日期/时间将是北美。
我试图了解是否有任何日期库或方法可以处理" 2 am est"部分,还是我必须自己进行转换(也将日期还原)。此时,将EST转换为GMT只是为了将其转换回前端的EST是没有意义的。
有任何建议?
第一部分,02/15/2019 2 AM
可以用Moment.JS,Luxon或Date-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
请注意,夏威夷的HST
和HAST
均如何使用?两者通常在那里使用。即使您决定要HST
,阿拉斯加的阿留申群岛仍然需要HAST
和HADT
,它们位于阿拉斯加其他地区的单独时区。
还有其他美国领土,您的数据包括它们吗?
您可以看到事情如何变得非常复杂。通常,时区的缩写不应解析,而是仅用于向人类展示。如果您要生成需要以后解释的数据,则数据应包括时区偏移。