我正在尝试使用timezone-js转换时区并根据区域获取正确的时间。我使用以下线程作为参考。 convert-date-to-another-timezone-in-javascript
但是,当我在构造函数中设置时间并更改时区时,它会显示相同的时间。
我无法根据区域获得转换时间。我试过跟随。
var dt = new timezoneJS.Date("2013/07/02 18:59:00 +0000", 'Asia/Singapore');
alert('This is time call ' + dt.getTime() + dt.getTimezone());
dt.setTimezone("America/Argentina/Mendoza");
alert('This is new time call ' + dt.getTime() + dt.getTimezone());
两者都显示我的时间为1372791540000.我在这里遗漏了什么吗?
感谢Matt的回答。这确实给了我约会。但是,我肯定错过了使用这个库的概念。我的理解是,一旦我给构造函数一个时间和区域,它将自动调整对象中的UTC,下次我更改区域时,它将根据区域提供正确的时间。
e.g。 - var dt = new timezoneJS.Date("2002/07/08 18:59:00 +0000", 'Asia/Singapore');
这给了我 2002-07-09 02:59:00
因此,它将第一个参数(日期)作为UTC并相应地调整时间。这是正确的行为吗?
然后dt.setTimezone("America/Argentina/Mendoza")
; => 2002-07-08 15:59:00
答案 0 :(得分:1)
getTime()
将始终返回自1970年1月1日 UTC 以来的毫秒数。将时间表示为单个整数时没有时区。
在documentation中,您会发现以下示例作为证据:
var dtA = new timezoneJS.Date(2007, 9, 31, 10, 30, 'America/Los_Angeles');
var dtB = new timezoneJS.Date(2007, 9, 31, 12, 30, 'America/Chicago');
// Same timestamp
dtA.getTime(); => 1193855400000
dtB.getTime(); => 1193855400000
对于时区特定输出,请尝试.toString()
。