YS.*_*YS. 9 javascript internet-explorer datetime json.net
我不确定我是否遗漏了某些东西 - 或IE或Json.Net.
但基本上这是有效的:
new Date("2012-08-03T12:36:54.743Z")
此操作因"无效日期"错误而失败:
new Date("2012-08-03T12:36:54.74Z")
第二个日期存储在SQL Server中:
2012-08-03 12:36:54.740
然后使用Json.Net将其序列化为JSON.Json.Net确实将日期序列化为2012-08-03T12:36:54.74Z,有效地切断了最后的0.
我的问题:
fer*_*ero 11
我不能告诉你它是否有意,但我已经做了很多搜索,我也没有找到真正解决这个问题的方法.似乎我们必须接受IE只接受三位数的事实.解决这个问题的唯一方法(对我来说)是在序列化时为Json.NET使用自定义转换器:
string json = JsonConvert.SerializeObject(
whatEver,
new IsoDateTimeConverter
{
DateTimeFormat = "yyyy-MM-dd\\THH:mm:ss.fffK"
}
);
Run Code Online (Sandbox Code Playgroud)
(仅使用Json.NET 4.0.8和4.5.8进行测试)
这迫使Json.NET使用正好3个小数位.
据我所知,Json.NET DateTime以最大必要的精度序列化ISO格式的值,在"秒"值的小数位中省略尾随零.
这匹配的输出
someDateTimeValue.ToString("yyyy-MM-dd\\THH:mm:ss.FFFFFFFK")
Run Code Online (Sandbox Code Playgroud)
DateTime类似DateTime.UtcNow将被序列化为最多7位数,因为这是a的精度DateTime(以Ticks测量).DateTime具有较少的小数位,Json.NET将省略那些尾随零.DateTime.Today因此,日期值将不包含"秒"值后面的数字,因为它完全正确0.| 归档时间: |
|
| 查看次数: |
3645 次 |
| 最近记录: |