在Javascript中解析特定日期时间格式

时间:2012-12-09 14:55:26

标签: javascript datetime datejs

我的日期格式如下:

2012-12-09T02:08:34.6225152Z

我正在使用datejs javascript library并希望解析上述日期,但我似乎无法弄清楚正确的格式字符串。我尝试了以下方法,但它不起作用。

Date.parse('2012-12-09T02:08:34.6225152Z', 'yyyy-MM-ddTHH:mm:ss.fffffffZ');

如果它更容易,我也愿意解析本机javascript中的字符串。

2 个答案:

答案 0 :(得分:1)

DateJS似乎不支持毫秒解析。 DateJS附加功能上的u FormatSpecifier可以工作(尚未测试)。

http://code.google.com/p/datejs/wiki/FormatSpecifiers

答案 1 :(得分:0)

我最后通过更改发送到Javascript的字符串格式来解决此问题。而不是2012-12-09T02:08:34.6225152Z我使用以下代码将JSON序列化程序更改为输出1363607010099

var serializer = new JsonNetSerializer(new JsonSerializerSettings
{
    DateFormatHandling = DateFormatHandling.MicrosoftDateFormat,
    NullValueHandling = NullValueHandling.Ignore
});

然后我改变了我的javascript以使用我找到的这个函数解析日期:

String.prototype.toDate = function () {
    "use strict";
    var match = /\/Date\((\d{13})\)\//.exec(this);
    return match === null ? null : new Date(parseInt(match[1], 10));
};

最后,我使用这段代码输出日期(利用DateJS库):

myTime.toDate().toString('h:mm:ss tt dd-MMM-yyyy')

它有效。这看起来有些过时,所以我更愿意考虑替代方案。