Javascript将UTC转换为当地时间

时间:2012-11-29 09:03:49

标签: javascript datetime

好的,请说JSON解析字符串UTC日期如下:

2012-11-29 17:00:34 UTC

现在,如果我想将此UTC日期转换为当地时间,我该怎么做?

如何将其格式化为yyyy-MM-dd HH:mm:ss z等其他内容?

date.toString('yyyy-MM-dd HH:mm:ss z');永远无法解决:/

9 个答案:

答案 0 :(得分:46)

尝试:

var date = new Date('2012-11-29 17:00:34 UTC');
date.toString();

答案 1 :(得分:35)

var offset = new Date().getTimezoneOffset();

offset将是从本地时间到UTC的间隔(以分钟为单位)。要从UTC日期获取本地时间,您可以从日期中减去分钟数。

utc_date.setMinutes(utc_date.getMinutes() - offset);

答案 2 :(得分:1)

这应该有效

var date = new Date('2012-11-29 17:00:34 UTC');
date.toString()

答案 3 :(得分:1)

要设置日期格式,请尝试以下功能:

var d = new Date();
var fromatted = d.toLocaleFormat("%d.%m.%Y %H:%M (%a)");

但缺点是,这是一个非标准功能,它在Chrome中不起作用,但在FF(afaik)中工作。

克里斯

答案 4 :(得分:1)

上述解决方案是正确的,但可能会在FireFox和Safari中崩溃!这就是webility.js试图解决的问题。检查toUTC功能,它适用于大多数主要的浏览器,并以ISO格式返回时间

答案 5 :(得分:0)

您可以使用 date-and-time API轻松进行日期操作。

let now = date.format(new Date(), 'YYYY-MM-DD HH:mm:ss', true);
console.log(now);
<script src="https://cdn.jsdelivr.net/npm/date-and-time/date-and-time.min.js"></script>

答案 6 :(得分:0)

这是另一个输出mm / dd / yy的选项:

const date = new Date('2012-11-29 17:00:34 UTC');
date.toLocaleString();
//output 11/29/2012

答案 7 :(得分:0)

这适用于 ChromeFirefox
未在其他浏览器上测试。

const convertToLocalTime = (dateTime, notStanderdFormat = true) => {
  if (dateTime !== null && dateTime !== undefined) {
    if (notStanderdFormat) {
      // works for 2021-02-21 04:01:19
      // convert to 2021-02-21T04:01:19.000000Z format before convert to local time
      const splited = dateTime.split(" ");
      let convertedDateTime = `${splited[0]}T${splited[1]}.000000Z`;
      const date = new Date(convertedDateTime);
      return date.toString();
    } else {
      // works for 2021-02-20T17:52:45.000000Z or  1613639329186
      const date = new Date(dateTime);
      return date.toString();
    }
  } else {
    return "Unknown";
  }
};

// TEST

console.log(convertToLocalTime('2012-11-29 17:00:34 UTC'));

答案 8 :(得分:-6)

/*
 * convert server time to local time
 *  simbu
*/
function convertTime(serverdate) {
    var date = new Date(serverdate);
    // convert to utc time
    var toutc = date.toUTCString();
    //convert to local time
    var locdat = new Date(toutc + " UTC");
    return locdat;
}