在此线程上问这个问题之前,我检查了以下可能的重复项:remove the local timezone from a date in javascript?
在我的情况下,执行此操作时未得到以毫秒为单位的日期,这会导致错误“无效的日期”:
// this is the date format I get as response from server
new Date("2018-09-17 14:02:09 +0530 IST")
因此,我不能在日期上使用toLocaleString()
。不幸的是,我也不能在当前项目中使用moment.js,因为我需要获得许可才能包含外部库。
我知道可以使用split或regex,但是我觉得它们局限于特定的用例。
是否可以将"2018-09-17 14:02:09 +0530 IST"
转换为"2018-09-17 14:02:09"
,或者只是将其转换为可读的日期字符串?
答案 0 :(得分:1)
您应该将日期转换为GMT格式。我建议您将字符串重新格式化为"2018-09-17 14:02:09 GMT+0530"
而不是"2018-09-17 14:02:09 +0530 IST"
。我觉得应该通过使用slice轻松地操作字符串,因为无论给定时间如何,字符串中时区所在的位置的索引都将保持不变。
let response = "2018-09-17 14:02:09 +0530 IST";
let dateStr = response.slice(0,20);
dateStr += "GMT+0530";
这应该将字符串重新格式化为有效的日期输入。