如何防止javascript将我的日期转换为GMT?

时间:2015-03-07 03:17:31

标签: javascript datetime

我有一个由

给出的时间戳
timestamp = 2015-02-22T10:00:00.000Z

为什么我这样做时会转换为GMT

var dt = new Date(timestamp);
console.log('dt = ' + dt); // prints Sun Feb 22 2015 05:00:00 GMT-0500 (EST)

我不希望它将我的约会转换为GMT。如何阻止javascript转换我的日期?

1 个答案:

答案 0 :(得分:0)

当您尝试执行dt = ' + dt时,Javascript会尝试将dt对象转换为字符串,以便将其添加到另一个字符串中。它通过调用dt.toString()方法来实现,您看到的格式是日期对象的默认字符串转换。

仅供参考,此默认格式如下所示:

Fri Mar 06 2015 19:24:42 GMT-0800 (Pacific Standard Time)

不是GMT时间。显示的时间值是当地时间。显示当地时间是格林尼治标准时间-0800小时,但时间本身以当地时间表示。

想要截断其最后一部分并显示它并不罕见:

Fri Mar 06 2015 19:24:42

可以这样做:

console.log('dt = ' + dt.toString().replace(/\sGMT.*$/, ""));

工作演示:http://jsfiddle.net/jfriend00/hg5m0r1r/


如果你想要显示不同的东西,那么你应该构建自己想要的字符串表示,而不是让系统自动调用.toString()。您可以查看可用的Date对象方法并确定要显示的内容。内部的Date对象是纪元时间以来的ms数,因此任何字符串表示都是某种转换。你必须告诉它你想要的转换。

您可以看到许多日期方法的列表here