Javascript Date.parse()如何处理UTC格式的时区



为了管理使用React native开发的移动应用程序的不同时区的日期,我的API存储在数据库中,并以UTC格式返回日期,如下所示:2020-09-06T11:07:12.647084Z

我以为我有一个特定的过程要做,通过React Native Localize包和rnlocalize.getTimeZone()方法将自己发送到手机的时区API,这样API就可以轻松处理日期,但我意识到,在原生Javascript中,只需在date对象的解析方法中以UTC格式传递日期,就可以以一种神奇的方式完全处理不同的时区。

因此,由于我不喜欢魔术,我想知道Javascript是如何检测手机的时区的,以及以下代码实际上是如何在内部工作的:

Date.parse("2020-09-06T11:07:12.647084Z")

使用此代码,如果我将手机时区更改为美国/纽约或欧洲/布鲁塞尔,则日期每次都有效,并且对于创建的同一主题,无论时区如何,它都会"告诉"我";4分钟前";。

如果Javascript管理时区,那么使用React Native Localize有什么意义?更重要的是,哪个时区更可靠?

Date.parse有一些不一致的行为(请参阅此处的第二段(,因为实现方式各不相同。如果您使用所有支持的浏览器和您可能存储的所有日期格式进行彻底测试,那么在这里使用可能很好。本机功能的优点是它不需要任何额外的脚本。

对图书馆来说,最大的好处是它能为你处理不一致的地方。看起来本地化库还有很多其他有用的功能,您的应用程序可能需要这些功能,也可能不需要这些功能。使用该库将有助于以更独立于浏览器的方式维护行为,但它确实需要额外的脚本。

我的建议是使用图书馆。它将使您的网站工作更加一致,并且(在不了解应用程序正在做的一切的情况下(我不希望额外脚本的下载会引人注目。