我有一个由
给出的时间戳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转换我的日期?
答案 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。