【发布时间】:2017-07-18 05:23:00
【问题描述】:
目标:在不考虑时区的情况下将 ISO 日期字符串转换为日期对象
我有一个 ISO 字符串:2017-07-23T20:30:00.00Z。
我尝试使用以下方法将该字符串转换为日期:
new Date('2017-07-23T20:30:00.00Z')
moment('2017-07-23T20:30:00.00Z').toDate()
moment.utc('2017-07-23T20:30:00.00Z').toDate()
所有人都给出以下输出:Mon Jul 24 2017 02:00:00 GMT+0530 (India Standard Time)
这是不正确的。
您能告诉我如何获取字符串中的确切日期吗?
【问题讨论】:
-
'2017-07-23T20:30:00.00Z.'.substring(0,10);获取日期。 -
@HassanImam——不是重复的。 OP 希望将日期视为本地日期,UTC 日期将与本地时区偏移期间每天的本地日期不同。在 +0530 时区,在当地时间上午 5:30 或从 UTC 时间下午 6:30 开始之前,它将是 UTC 术语中的“明天”。
-
@RobG 难道 OP 不想从他的原始 ISO 日期字符串中提取日期吗?甚至他的例子也指出了同样的问题。
-
@HassanImam—关于您的第一条评论,建议的副本使用时区。对于您的第二个,OP 想要将字符串转换为 Date 对象,您建议仅使用日期部分失败,因为
new Date('2017-07-23')将(在大多数浏览器中)将字符串视为 UTC(所以回到 UTC 日期的原始问题与当地日期不符)。
标签: javascript date datetime momentjs