【发布时间】:2020-01-20 22:03:11
【问题描述】:
我有一个字符串格式的日期,例如2020-01-10。将其转换为这种格式的字符串的正确 vanilla JS 方法是什么——具有时间和时区偏移量的字符串,例如
2020-01-10T00:00-0500
在我的例子中,时间总是午夜,偏移量总是-0500。
我想我可以从我的字符串中创建一个新的日期对象开始,如下所示:
dateString = `2020-01-10`;
dateObj = new Date(dateString);
然后呢?
在我的新日期对象上使用dateObj.toISOString() 看起来可以让我接近。这将输出一个带有所需日期和时间的字符串,但不是所需的时区偏移量:
2020-01-10T00:00:00.000Z
然后我是否必须使用其他字符串方法来插入我想要的时区偏移量(例如dateObj.toISOString(dateObj).slice(0,23)+'-05:00')?或者我是否可以创建具有这个时区偏移量的初始日期对象?
我知道有一些库可以帮助解决这个问题(例如 momentjs)。但如果可能的话,我希望有一个普通的 JS 解决方案。
谢谢。
【问题讨论】:
-
您的时区偏移量 (-5h) 是本地时区还是要强制此偏移量?
-
我想在所有情况下都强制使用这个偏移量。
-
Date对象没有时区。如果您只针对最近的浏览器,Intl.DateTimeFormat 可能适合您。
标签: javascript date