1

我知道如何使用 new Date(UTCStrings) 到本地时区。

但是现在,问题是如何将 UTCString 转换为其他时区(不是本地时区)。

例如

UTCString 是“1338480000000”。我的本地时区是 UTC+4。我想将日期(UTCString)转换为 UTC+9。

我该怎么做?

感谢您的帮助!

更新

感谢巴拉克里希南的帮助。

我按照 BalaKrishnan 的关键点做了一个简单的函数。希望这会对其他人有所帮助。

function utcToOtherTimezone(utcString, timezone){
    var isoDt = new Date(utcString), // do this to convert it to iso time: 
    dt = isoDt.addMinutes( isoDt.getTimezoneOffset() + (timezone * 60) );

    return dt.toLocaleDateString() + ' ' + dt.toLocaleTimeString();
}

$('#dtime').html(utcToOtherTimezone(1341282169000, +8));​

并且不要忘记添加datejs

在线测试示例http://jsfiddle.net/ysjia/FWbZ8/。好好享受。

4

1 回答 1

1

首先从 UTCString 创建一个 Date 对象,如下所示: var utcString = 1338480000000; // 然而,这将是当地时间,而不是 iso 时间。var isoDt = new Date(utcString); // 将其转换为 iso 时间:isoDt.addMinutes( isoDt.getTimezoneOffset() ); // addMinutes 是来自Date.js的 API 。现在 isoDt 对象的日期值与 UTC 日期相同,您可以在其中添加必要的偏移量 +9 或其他值。

请参阅讨论此问题的 jquery 常见问题解答:http: //jqfaq.com/how-to-parse-a-date-string-disregarding-time-zones/

于 2012-07-02T12:57:53.867 回答