如何将JavaScript日期转换为特定时区 [英] How to convert javascript date to a particular timezone

查看:77
本文介绍了如何将JavaScript日期转换为特定时区的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在获取日期信息,以毫秒为单位。我能够正确解析它。但是,当我更改我的PC时区时,解析的时间也会更改。我只想要一个特定的时区。

I am getting date info as number in milliseconds. I am able to parse it properly. But when I change my pc timezone the parsed time is also changed. I want only to a particular timezone only.

EX。

Time in millisec: 1461645900000
Actual Parsed: 26-Apr-2016 10:15:00 IST

当pc时区更改时,它变为: 2016年4月26日星期二14:15:00 GMT + 0930(本地标准时间)

when pc timezone is changed it become: Tue Apr 26 2016 14:15:00 GMT+0930 (Local Standard Time)

这里我只需要实际时间。

Here I want only the actual time. How to get it?

这是我的小尝试:

function parseDateTime(dt, format) {
    var months = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug",
            "Sep", "Oct", "Nov", "Dec" ];
    var ret = "";
    if (dt) {
    var day="",month="",year="",hour="",mins="",secs="";
        var d = new Date(dt)
        var os=d.getTimezoneOffset();
        if(os<0){

        }
        ret += d.getDate() + "-" + months[parseInt(d.getMonth())] + "-"
                + d.getFullYear() + " " + leftPad(d.getHours(), 2, "0") + ":"
                + leftPad(d.getMinutes(), 2, "0") + ":"
                + leftPad(d.getSeconds(), 2, "0");
    }
    document.getElementById("d1").innerHTML=ret;
    console.log(ret);
}
function leftPad(number, targetLength, withWhat) {
    var output = number + '';
    while (output.length < targetLength) {
        output = withWhat + output;
    }
    return output;
}
parseDateTime(1461645900000);

我使用了
new Date()。toLocaleString( en-US,{ timeZone:}),但数量有限。另外,我对新的lib也不感兴趣。

I have used new Date().toLocaleString("en-US", {timeZone: ""}) but limited. Also I am not interested in new lib.

推荐答案

我了解您希望获得相同的时间,而与时区无关您可以通过毫秒。

I understand that you wanted to get a same time irrespective of time zone when ever you pass the milliseconds.

而不是以下两行

    var d = new Date(dt)
    var os = d.getTimezoneOffset();

您包括以下几行

    var os = new Date()
    os = os.getTimezoneOffset();
    var d = new Date((dt + (os * 60 * 1000)));

这会根据您的本地时区将毫秒调整为UTC时间,并从调整后的UTC创建日期对象时间,这样无论您所在的时区如何,您都将获得相同的时间。

This adjusts your milliseconds to UTC time based on your local timezone and creates the date object from the adjusted UTC time, so that you will always get same time, irrespective of your local time zone.

这篇关于如何将JavaScript日期转换为特定时区的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆