我的日期来自JSON文件,这是CET时间,以毫秒为单位,我想要仅在CET中获取。但是我的代码将该日期转换为GMT。我不希望他们参加GMT。我只想要CET。请指教!这是我的代码。我没有设置任何地方将其转换为GMT,它默认是转换。
myData = data;
myData.forEach(function(d) {
d.date = new Date(d.date);
d.name = +d.name;
console.log(d.date,"Gt date");
});
答案 0 :(得分:1)
Date
个对象没有固有的时区 - 它们将显示在用户的本地区域中 - 但在创建时,除非另有说明,否则它们将采用GMT。
您不应该根据非GMT时区存储日期数据,因为您必须处理夏令时的噩梦;更好地将所有内容存储在GMT中,然后在显示步骤转换为本地时间。您应该特别不要将简单的数字ms-past-epoch时间存储为非GMT,因为所有理智的代码(或代码的未来维护者)都会认为它是GMT。
创建日期对象时,您可以特定于CET中(但您确定某些数据不是CEST吗?)或者只需在调用new Date()
之前减去一小时来自行完成转换它。在你的情况下,既然你已经在ms了,那么减去小时会更容易。
默认情况下,从Date
对象读取的日期将显示在本地时区中 - 请注意,如果您在两个不同时区中有两个用户,则他们会在同一日期看到不同的区域。通常这就是你想要的。