我有以下格式的日期:解析特定日期时间格式在Javascript
2012-12-09T02:08:34.6225152Z
我使用的datejs javascript library并希望分析上面的日期,但我似乎无法到找出正确的格式字符串。我试过以下,但它不起作用。
Date.parse('2012-12-09T02:08:34.6225152Z', 'yyyy-MM-ddTHH:mm:ss.fffffffZ');
如果更容易,我也打开解析原生javascript中的字符串。
我有以下格式的日期:解析特定日期时间格式在Javascript
2012-12-09T02:08:34.6225152Z
我使用的datejs javascript library并希望分析上面的日期,但我似乎无法到找出正确的格式字符串。我试过以下,但它不起作用。
Date.parse('2012-12-09T02:08:34.6225152Z', 'yyyy-MM-ddTHH:mm:ss.fffffffZ');
如果更容易,我也打开解析原生javascript中的字符串。
我最终通过改变字符串的格式,因为它被送到的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')
它工作。这看起来有点骇人听闻,所以我更愿意考虑替代方案。
DateJS似乎不支持毫秒分析。 DateJS附加功能上的u
FormatSpecifier可以工作(尚未测试过)。
不幸的是,这是行不通的。 DateJs额外的东西只用于输出格式(即toString()),而不是解析。 –
建设性的建议:使用toDate函数扩展字符串对象有点难看,因为不是所有的字符串都可以转换为日期。为什么该函数可用于所有可能的字符串,而您只需要它为一个特定的字符串? “some”.toDate()没有任何意义,而“今天”.toDate()或“2013-1-1”.toDate()将有意义,但返回null - 仅支持:) – Andries
好点。这并不是说我的解决方案是一个很好的解决方案,但是我发现问题仍然是开放的,并希望用一个被接受的答案来解决问题,这是我最终解决问题的方法。如果你有更好的选择来解决原始问题问题,然后请张贴您的答案。=) –