如何在JavaScript中处理夏令时和时区

how to handle DST and timezones in JavaScript

本文关键字:夏令时 时区 处理 JavaScript      更新时间:2023-09-26

当您的web服务接受来自不同时区的请求时,处理DST值的最佳方法是什么?

我的Web服务接受使用ISO8601标准的日期字符串(2012-02-21T05:00:00.000-05:00)

我想考虑DST,但不希望维护或连接到数据库的开销为从不同时区传入我的服务器的每个请求获取DST。

我考虑的一种方法是使用服务器默认的DST设置,然后对于每个传入的请求,将其转换到与我的服务器所在的时区。然后,处理完成后,将字符串转换回客户端的时区并返回。响应数据的转换可以在服务器或客户端上完成。

有什么建议吗?

您还可以查看用于在Javascript中处理日期对象的XDate项目。它与JodaTime(在Java中)非常相似。非常易于使用和语义化。

XDate项目

以下是我要做的。在提交数据/时间之前,将字符串解析为JavaScript Date对象。然后调用getTime()并提交该值。getTime()返回自UTC历元以来的毫秒数,因此实际上,它会使您的时间标准化。然后,当您将数据返回给用户时,将UTC毫秒值传递给Date对象的构造函数,并按照您的意愿显示时间。默认情况下,它将显示在用户的时区中。