如何将UTC时区转换为本地时区位置

时间:2016-10-16 07:31:55

标签: javascript jquery datetime momentjs

我有以下代码:

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

在我的javascript中我试图将UTC + 5:30转换为IST-Indian标准时间(Chennai,加尔各答,孟买,新德里) UTC值可以是转换后的值。

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

//get text from divUTC and convert to local timezone  

我知道我没有在这里放置任何代码,但遗憾的是它没有引起我的注意,我可以选择放置键值对,但这没有效果。请建议。

1 个答案:

答案 0 :(得分:0)

将UTC + XX转换为任何本地时区文本的问题之一是它不是1:1映射。尽管如此,如果你使用带有时区的时刻,你可以得到一个可能的位置列表。

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时间变化,这意味着该地区可能会有不同的偏移量,具体取决于一年中的时间。