0

我有以下格式的日期:

2012-12-09T02:08:34.6225152Z

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

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

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

4

2 回答 2

1

DateJS 似乎不支持毫秒解析。DateJS 附加组件上有uFormatSpecifier 可以工作(尚未测试)。

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

于 2012-12-09T15:02:42.280 回答
0

我最终通过在发送到 Javascript 时更改字符串的格式来解决这个问题。我没有使用以下代码将JSON2012-12-09T02:08:34.6225152Z序列化程序更改为输出: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')

它有效。这似乎有点骇人听闻,所以我非常愿意考虑替代方案。

于 2013-03-18T11:54:15.963 回答