转换日期在本地时区使用javascript(Convert date in local timezo

2019-07-17 14:23发布

在我的JavaScript层,我收到一个timestampUTC格式-我需要将其转换为当地时区 。 我知道的是,时区可以使用转换DateFormat在Java的一面,但我正在寻找一个可靠的方式使用只有JavaScript来做到这一点。

任何建议将非常赞赏。

Answer 1:

使用使用getTimezoneOffset()

  1. 获取当地UTC偏移,并转换为毫秒

     localOffset = d.getTimezoneOffset() * 60000; 

    需要注意的是从使用getTimezoneOffset()返回一个负值表示当前位置是比UTC,而正值表明该位置的背后是UTC。

  2. 获取当前UTC时间,通过增加本地时区偏移量为本地时间。 (本地时间你会从获得的getTime())

     // obtain UTC time in msec utc = localTime + localOffset; 
  3. 一旦获得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年的毫秒数显然,这不是很可读,所以我们需要做一些计算。

  4. 通过初始化一个新的Date()对象有了它,并调用对象的的toLocaleString()方法改变在先前步骤中以人可读的日期/时间字符串中计算出的时间值。

     // convert msec value to date string nd = new Date(mumbai); document.writeln("Mumbai time is " + nd.toLocaleString() + "<br>"); 

就大功告成了!



文章来源: Convert date in local timezone using javascript