在我的JavaScript层,我收到一个timestamp
是UTC格式-我需要将其转换为当地时区 。 我知道的是,时区可以使用转换DateFormat
在Java的一面,但我正在寻找一个可靠的方式使用只有JavaScript来做到这一点。
任何建议将非常赞赏。
在我的JavaScript层,我收到一个timestamp
是UTC格式-我需要将其转换为当地时区 。 我知道的是,时区可以使用转换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);
在这一点上,变量孟买包含在印度孟买市的本地时间。 这个本地时间表示为自1月1日1970年的毫秒数显然,这不是很可读,所以我们需要做一些计算。
通过初始化一个新的Date()对象有了它,并调用对象的的toLocaleString()方法改变在先前步骤中以人可读的日期/时间字符串中计算出的时间值。
// convert msec value to date string nd = new Date(mumbai); document.writeln("Mumbai time is " + nd.toLocaleString() + "<br>");
就大功告成了!