0

可能重复:
帮助在 Javascript 中解析 ISO 8601 日期

我有一组字符串,格式相似:2012-05-31T00:00:00.0000000

我想从中提取的是年(2012)、月(05)和日(31),然后从这些数据构造一个javascript Date 对象。

解析这些数据的最佳方法是什么?

4

2 回答 2

2

我能想到的最简单的方法是使用正则表达式,并将值传递给Date 构造函数

function parseISODate(dateString) {
    var match = /^(\d{4})-(\d\d)-(\d\d)/.exec(dateString);
    return new Date(Number(match[1]), Number(match[2]) - 1, Number(match[3]));
}

console.log(parseISODate('2012-05-31T00:00:00.0000000'));
// Date {Thu May 31 2012 00:00:00 GMT+0200}

当然,您也可以随时扩展它以匹配时间......

于 2012-06-04T19:27:19.840 回答
-1

编辑(UTC):

var origDate = new Date('2012-05-31T00:00:00.0000000');
var newDate = new Date(origDate.getUTCFullYear(), origDate.getUTCMonth(), origDate.getUTCDate(), 0, 0, 0, 0);
于 2012-06-04T19:34:24.727 回答