我有一个时区字符串,例如“太平洋时间(美国和加拿大)”。对于特定日期(包括夏令时),我需要在 UTC 的那个时区获得相当于下午 3 点的时间。我该怎么办?
例如,我需要在 UTC 时间找到 12 月 3 日 PDT 下午 3 点。
我有一个时区字符串,例如“太平洋时间(美国和加拿大)”。对于特定日期(包括夏令时),我需要在 UTC 的那个时区获得相当于下午 3 点的时间。我该怎么办?
例如,我需要在 UTC 时间找到 12 月 3 日 PDT 下午 3 点。
该时区标识符看起来像是来自 Rails 或来自 Twitter(使用 Rails)。您首先需要将其转换为标准 IANA 区域标识符,例如“America/Los_Angeles”。请参阅ActiveSupport::TimeZone 文档MAPPING
中的声明。
然后你可以使用我在这里提到的库之一。
特别是,您可能想尝试moment-timezone。您需要针对此特定功能的最新开发版本,因为它是在问题#25中添加的,当前版本中还没有。然后你可以做这样的事情:
moment.tz("2013-12-03T15:00:00","America/Los_Angeles").utc().format()
您可以将输入/输出格式调整为对您有意义且受moment.js支持的任何格式。
我提到的其他时区库也可能提供类似的功能而没有太多开销,因此值得一看。
这似乎对我有用,虽然它确实感觉有点脆弱
new Date('2013-12-03 15:00:00 PDT').toUTCString()
-> "Tue, 03 Dec 2013 22:00:00 GMT"