c#中的JSON DateTime序列化处理一位数和两位数小时
Posted
技术标签:
【中文标题】c#中的JSON DateTime序列化处理一位数和两位数小时【英文标题】:JSON DateTime serialisation in c# handle both single digit and double digit hour 【发布时间】:2021-04-22 11:48:57 【问题描述】:我有一个第 3 方应用程序,它以单位数和两位数小时格式发送 JSON 日期时间。小时数小于 10 时为个位数,大于等于 10 时为两位数。
例如
2020-12-17T9:00:00.000-04:00
2020-12-17T11:00:00.000-04:00
我预计 2020-12-17T9:00:00.000-04:00 发送为 2020-12-17T09:00:00.000-04:00。
是否有任何 DateFormatString 可以同时处理单数字小时和双数字小时?
目前,我在 Newtonsoft 中使用默认设置,在将单个数字字符串解析为 DateTime 时会引发异常。
【问题讨论】:
您能否向第三方应用程序提供反馈并在那里进行修复?显然 trying 提供了一个 ISO-8601 字符串,但该标准需要两位数。对他们来说,修复他们的格式比让每个消费者都必须解决它被破坏要好。 是的,这就是我打算做的。我把它贴在这里看看我是否遗漏了什么。我相信他们通过了无效的格式,但我想在问之前仔细检查一下......谢谢 【参考方案1】:我想我不应该一开始就问这个问题。很明显,第 3 方公司没有通过正确的格式。
想要获取“2020-12-17T11:00:00.000-04:00”这种格式的日期时间字符串,格式为“yyyy-MM-ddThh:mm:ss.fffzzz”
var dateString = DateTime.Now.ToString("yyyy-MM-ddThh:mm:ss.fffzzz");
【讨论】:
以上是关于c#中的JSON DateTime序列化处理一位数和两位数小时的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Jackson JSON 处理器序列化 Joda DateTime?
C# 使用linq处理返回带datetime类型数据 json显示/date(xxxxx)/