我有一个日期和时间存储在Typescript中的不同字符串中,我想将其转换为日期。
它让我疯狂,因为我在GMT-3中,即使我使用UTC,日期也不是应该的。
我有两个问题:第1,日期不正确,第2,是否有更多"优雅"这样做的方法?
parseDate(date: string, time: string) : Date {
let d = new Date(Date.UTC(
Number(date.substring(0,4)),
Number(date.substring(5,7)) - 1,
Number(date.substring(8)),
Number(time.substring(0, 2)),
Number(time.substring(3))
));
return d;
}
我正在测试日期' 2018-02-09'和时间< 10:15'我得到的是2018年2月9日2018 07:15:00 GMT-0300(南部东部标准时间)
答案 0 :(得分:1)
该日期实际上看起来很好,您是否使用toString()来查看它包含的内容?这将始终使用您当地的时区。
尝试使用toUTCString()
如果你需要很好的解析功能而不导入一个完全膨胀的库,我会建议fecha(https://github.com/taylorhakes/fecha)
答案 1 :(得分:1)
使用Date.UTC时,您将时区设置为UTC,要使用浏览器时区,您只需使用:
parseDate(date: string, time: string) : Date {
return new Date(date + ' ' + time)
}
parseDate('2018-02-09', '10:15') // Fri Feb 09 2018 10:15:00 GMT+0100 (CET) - I'm in GMT+01