大佬教程收集整理的这篇文章主要介绍了如何让JSON.NET将日期/时间序列化为ISO 8601?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
2017-03-15T00:00:00-04:00
这让消费者有点头疼,因为他们期望它采用ISO 8601格式.一些研究告诉我,JSON.NET现在默认使用ISO 8601(我使用的是9.0.1).当我运行此代码时……
Clipboard.Copy(JsonConvert.serializeObject(datetiR_146_11845@e.Now));
……我明白了:
2017-03-15T09:10:13.8105498-04:00
维基百科在表达完整日期和时间时将这些显示为有效的ISO 8601格式:
2017-03-15T11:45:42+00:00 2017-03-15T11:45:42Z 20170315T114542Z
但是,我上面得到的输出并不完全匹配.我希望格式化程序使用2017-03-15T11:45:42Z.
并且可能完全值得另外一个问题,在我的Web API配置中添加以下行似乎被忽略,因为它继续在上面最初显示的日期返回JSON:
config.Formatters.JsonFormatter.serializerSetTings.Converters.Add(new IsodatetiR_146_11845@eConverter());
我假设一旦找出核心问题,Web API问题也可能得到解决.
IsodatetiR_146_11845@eConverter具有可用于自定义其输出的设置.您可以通过将Datetimestyles设置为AdjustToUniversal使其自动将日期调整为UTC.如果不需要,您还可以自定义输出格式以省略小数秒.默认情况下,转换器不会调整为UTC时间,并且包含与秒可用的精度小数一样多的小数.
试试这个:
IsodatetiR_146_11845@eConverter converter = new IsodatetiR_146_11845@eConverter { Datetimestyles = Datetimestyles.AdjustToUniversal,datetiR_146_11845@eFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ssK" }; config.Formatters.JsonFormatter.serializerSetTings.Converters.Add(converter);
如果您的日期已经是UTC,但它们上的datetiR_146_11845@eKind未设置为Utc(例如它是未指定的),那么理想情况下您应该修复代码,以便在序列化之前正确设置此指标.但是,如果您不能(或不想)这样做,您可以通过更改转换器设置来处理它,以便始终以日期格式包含Z指示符(而不是使用查看datetiR_146_11845@eKind的K说明符)在日期)并删除AdjustToUniversal指令.
IsodatetiR_146_11845@eConverter converter = new IsodatetiR_146_11845@eConverter { datetiR_146_11845@eFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'" };
以上是大佬教程为你收集整理的如何让JSON.NET将日期/时间序列化为ISO 8601?全部内容,希望文章能够帮你解决如何让JSON.NET将日期/时间序列化为ISO 8601?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。