如何将UTC时间转换为本地时间

时间:2014-07-15 21:06:04

标签: javascript timezone

您好我正在从服务器向客户端的浏览器提供UTC时间。时间显示正确,但时区没有。以下是时间的显示方式:

  

Tue Jul 15 2014 19:35:00 GMT-0500

日期和时间是正确的,但时区不是。我只想将GMT -0500改为UTC。当我将其更改为UTC时,我可以将其转换为当地时间。

1 个答案:

答案 0 :(得分:3)

即使您收到UTC时间,javascript对象也会始终显示为控制台中的本地时间。例如:

var date = new Date(1405458751062);

为我输出:

Tue Jul 15 2014 17:12:31 GMT-0400

您必须获取该日期对象并输出特定属性。

例如在UTC中:

date.getUTCFullYear() + "-" + (date.getUTCMonth() + 1) + "-" + date.getUTCDate() + " " + date.getUTCHours() + ":" + date.getUTCMinutes();

输出:

2014-7-15 21:12

或当地时间:

date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes();

输出:

2014-7-15 17:12

对我来说,似乎你在你的日期错误解析,因为19:35尚未到来。您需要确保正确解析日期,以便在将日期对象输出到控制台(例如console.log(date))时,它将在浏览器的本地时间显示日期。从那里,你必须使用类似于上面的方法在UTC中正确格式化日期。


我建议使用Moment.js。它让生活变得轻松:

var date = moment(1405458751062); 
date.toString();         // returns Tue Jul 15 2014 17:12:31 GMT-0400
date.utc().toString();   // returns Tue Jul 15 2014 21:12:31 GMT+0000
date.local().toString(); // returns Tue Jul 15 2014 17:12:31 GMT-0400

图书馆也可以很容易地格式化日期。