在javascript中以本地日期格式解析Datetime字符串(最好使用luxon)

时间:2019-07-02 14:26:44

标签: javascript date datetime luxon

假设我有一个日期时间字符串10/09/2019 10:03:00.000 AM

现在,如果我在美国,我将其读为2019年10月9日;如果我在印度,我将其读为2019年9月10日。

所以,我的问题是,如何以基于本地时区进行解析的方式将此字符串解析为Date对象。

我正在使用luxon,但是,纯JavaScript解决方案也可以使用。

1 个答案:

答案 0 :(得分:0)

使用支持在解析器中使用“宏”令牌的Luxon的最新版本:

> DateTime.fromFormat("10/09/2019 10:03:00.000 AM", "D hh:mm:ss.SSS a").toISO()
'2019-10-09T10:03:00.000-04:00'
> DateTime.fromFormat("10/09/2019 10:03:00.000 AM", "D hh:mm:ss.SSS a", { locale: "en-IN" }).toISO()
'2019-09-10T10:03:00.000-04:00'

IMO,此解决方案很脆弱,因为Luxon的解析器在这里非常严格,本质上要求日期部分在该语言环境中完全匹配 DateTime.toFormat,因此0填充的差异,斜杠与连字符等。