由于某种原因,我的一个 WebService 的 SOAP 响应如下所示:
2010/07/08 04:21:24.477
日期格式为 YYYY/MM/DD
,时间为 GMT。
我不太确定如何将其转换为本地时间,因为格式很奇怪。
最佳答案
Date.parse
实际上应该将大部分日期字符串解析为其各自的时间戳。
这两个警告似乎是:
- 不支持毫秒,因此必须在解析后将它们分开并添加。
- 它会假定本地时间,因此应在解析之前附加
'GMT'
或'UTC'
。
考虑到这些,以下应该可行:
function parseSoapDate(dateString) {
var dateParts = dateString.split('.'),
dateParse = dateParts[0],
dateMilli = dateParts[1];
return new Date(
Date.parse(dateParse + ' GMT') +
parseInt(dateMilli, 10)
);
}
var date = parseSoapDate('2010/07/08 04:21:24.477');
对于 UTC 到本地时间,JavaScript 的 Date
对象应该已经为您处理了这个问题,因为它们可以报告 UTC 和用户本地时区的日期。您可以通过方法名称指定所需的方法(无论其中是否包含 UTC
):
alert(date.toString()); // local time
alert(date.toUTCString()); // UTC time
关于javascript - 使用 JavaScript 将 (YYYY/MM/DD HH :MM:SS. MS) GMT 转换为本地时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3213222/