44

好的,说 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');永远不会解决:/

4

10 回答 10

53

尝试:

var date = new Date('2012-11-29 17:00:34 UTC');
date.toString();
于 2012-11-29T09:06:08.113 回答
39
var offset = new Date().getTimezoneOffset();

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

utc_date.setMinutes(utc_date.getMinutes() - offset);
于 2012-11-29T09:18:23.350 回答
2

要格式化您的日期,请尝试以下功能:

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

但这样做的缺点是,它是一个非标准函数,在 Chrome 中不起作用,但在 FF (afaik) 中起作用。

克里斯

于 2013-08-02T11:12:56.967 回答
2

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

const date = new Date('2012-11-29 17:00:34 UTC');
date.toLocaleString();
//output 11/29/2012
于 2020-11-10T04:20:23.237 回答
1

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

于 2016-08-21T07:12:06.443 回答
1

您可以查看日期和时间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>

于 2019-02-09T13:49:49.840 回答
0

这应该工作

var date = new Date('2012-11-29 17:00:34 UTC');
date.toString()
于 2012-11-29T09:06:08.187 回答
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'));

于 2021-02-21T04:40:13.440 回答
0
// d = "2021-09-23T15:51:48.31"

console.log(new Date(d + "z").toLocaleDateString());  // gives 9/23/2021

console.log(new Date(d + "z").toLocaleString()); // gives 9/23/2021, 10:51:48 AM
console.log(new Date(d + "z").toLocaleTimeString()); // gives 10:51:48 AM
于 2021-09-23T16:10:07.090 回答
-7
/*
 * 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;
}
于 2015-01-08T08:30:19.830 回答