【问题标题】:How to convert UTC timezone to local timezone location如何将 UTC 时区转换为本地时区位置
【发布时间】:2016-10-16 07:31:55
【问题描述】:

我有以下代码:

UTC<br/>
<div id="divUTC">'UTC+5:30'</div><br/>
<br/>
<div id="divLocal">
</div>

在我的 javascript 中,我正在尝试将 UTC+5:30 转换为 IST-印度标准时间(金奈、加尔各答、孟买、新德里) UTC 值可以是任何值,转换后的值也是如此。

var divUtc = $('#divUTC');
var divLocal = $('#divLocal');  

//get text from divUTC and convert to local timezone  

我知道我没有在这里放置任何代码,但很抱歉它没有引起我的注意,我可以选择放置键值对,但这并不有效。请提出建议。

【问题讨论】:

  • 时区转换是一项比较大的工作。我建议使用像 momentjs 这样的库
  • 嗨 Vladimir M,我明白了,但是 momentjs 只能将 UTC 时间转换为本地时间,谢谢

标签: javascript jquery datetime momentjs


【解决方案1】:

将 UTC+XX 转换为任何本地时区文本的问题之一是它不是 1:1 映射。不过,如果您将 momentjs 与时区一起使用,您可以获得可能的位置列表。

1) 获取所有已知时区:

var names = moment.tz.names();
// names now contain an array of tz names

2) 遍历名称数组,在特定时区创建时刻对象并获取其偏移量。以下代码将打印此时每个 tz 名称的偏移量。

for( var i = 0; i < names.length; i++){
    console.log(moment.tz(names[i]).format('Z'));
}

3) 在该循环中,您可以比较时刻的 utcOffset 或偏移的文本表示,并获得一组适合您的偏移的时区。

这是一个循环,将打印 +05:30 的所有 tz 名称。

var names = moment.tz.names();
for( var i = 0; i < names.length; i++){
    if(moment.tz(names[i]).format('Z') === "+05:30"){
        console.log(names[i])    
    }
}

// output:
//     Asia/Calcutta
//     Asia/Colombo
//     Asia/Kolkata

另外,请记住,许多地区都有 DST 时间变化,这意味着该地区可能有不同的偏移量,具体取决于一年中的时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-12
    • 2011-09-16
    • 2019-05-31
    • 2013-08-04
    • 2014-08-18
    • 2010-11-19
    • 2016-02-13
    • 2014-10-05
    相关资源
    最近更新 更多