timestamp
在我的 JavaScript 层中,我收到一个UTC格式的 - 我需要将它转换为local timezone。我知道可以DateFormat
在 Java 端转换时区,但我正在寻找一种仅使用 JavaScript 的可靠方法。
任何建议将不胜感激。
timestamp
在我的 JavaScript 层中,我收到一个UTC格式的 - 我需要将它转换为local timezone。我知道可以DateFormat
在 Java 端转换时区,但我正在寻找一种仅使用 JavaScript 的可靠方法。
任何建议将不胜感激。
使用getTimezoneOffset()
获取本地 UTC 偏移量并转换为毫秒
localOffset = d.getTimezoneOffset() * 60000;
请注意,getTimezoneOffset() 的负返回值表示当前位置早于 UTC,而正值表示该位置晚于 UTC。
通过将本地时区偏移量添加到本地时间来获取当前的 UTC 时间。(您将从 getTime() 获得的本地时间)
// obtain UTC time in msec
utc = localTime + localOffset;
获取 UTC 时间后,以小时为单位获取目的地城市的 UTC 偏移量,将其转换为毫秒并添加到 UTC 时间。
// obtain and add destination's UTC time offset
// for example, Mumbai(India)
// which is UTC + 5.5 hours
offset = 5.5;
mumbai = utc + (3600000*offset);
此时,变量 mumbai 包含印度孟买市的当地时间。这个本地时间表示为自 1970 年 1 月 1 日以来的毫秒数。显然,这不是很可读,因此我们需要进行一些计算。
通过使用它初始化一个新的 Date() 对象并调用该对象的 toLocaleString() 方法,将上一步中计算的时间值更改为人类可读的日期/时间字符串。
// convert msec value to date string
nd = new Date(mumbai);
document.writeln("Mumbai time is " + nd.toLocaleString() + "<br>");
你完成了!