在 UTC 和特定时区之间转换时间 - 新的国际化 API

Convert time between UTC and specific timezone - New Internationalization API

本文关键字:国际化 API 时间 转换 UTC 定时区 之间      更新时间:2023-09-26

我正在尝试使用新的国际化API。我使用铬版本 31.0.1623.0 金丝雀

我想要的是

  1. 在 UTC 和特定时区之间转换日期时间(示例中America/New_York
  2. 要检查转换是否为夏令时,请注意更改。

那么,以当前的支持级别是否可以在这两个时区之间进行转换,当

a. 夏令时处于活动状态

//EDT: 11/2/2013 01:04:05
//UTC: 11/2/2013 05:04:05

二.不活动

//EST: 11/3/2013 01:04:05
//UTC: 11/3/2013 06:04:05

还有为什么是 12 月,当我在下面的示例中指定第 11 个月时。

http://jsfiddle.net/kr8FW/2/

console.clear();
var dtf = new Intl.DateTimeFormat('en-US', {timeZone: 'America/New_York'});
//EDT: 11/2/2013 01:04:05
//UTC: 11/2/2013 05:04:05
var utc1 = new Date(Date.UTC(2013, 11, 2, 5, 4, 5))
console.log(dtf.format(utc1));
console.log(utc1.toLocaleString("en-US", {timeZone: "America/New_York"}));
//EST: 11/3/2013 01:04:05
//UTC: 11/3/2013 06:04:05
var utc2 = new Date(Date.UTC(2013, 11, 3, 5, 4, 5))
console.log(utc2.toLocaleString("en-US", {timeZone: "America/New_York"}));

输出为

Console was cleared (index):21
12/2/2013 (index):29
12/2/2013 12:04:05 AM (index):30
12/3/2013 12:04:05 AM 

javascript Date 说月份是 0-11。

夏令时于 2013 年 11 月 3 日凌晨 2 点结束。因此,这两个时间都在美国东部时区的夏令时范围内。