关于javascript:在特定时区生成日期

Generating a date in a particular timezone

本问题已经有最佳答案,请猛点这里访问。

我有一个时区字符串,例如"太平洋时间(美国和加拿大)"。 对于特定日期,我需要在UTC的时区中获得相当于下午3点的时间,包括夏令时。 我怎么能这样做?

例如,我需要在12月3日下午3点,PDT在UTC时间找到。


该时区标识符看起来像是来自Rails,或来自Twitter(使用Rails)。 您首先需要将其转换为标准的IANA区域标识符,例如"America / Los_Angeles"。 请参阅ActiveSupport :: TimeZone文档中的MAPPING声明。

然后你可以使用我在这里提到的一个库。

特别是,你可能想尝试一下时刻。 您将需要针对此特定功能的最新开发版本,因为它已在问题#25中添加,但尚未在当前版本中添加。 然后你可以做这样的事情:

1
moment.tz("2013-12-03T15:00:00","America/Los_Angeles").utc().format()

您可以将输入/输出格式调整为适合您的任何格式,并由moment.js支持。

我提到的其他时区库也可能提供类似的功能而没有太多的开销,因此值得一看。


这似乎对我有用,虽然它确实感觉有点脆弱

1
2
3
new Date('2013-12-03 15:00:00 PDT').toUTCString()

    ->"Tue, 03 Dec 2013 22:00:00 GMT"