【发布时间】:2019-07-22 15:43:41
【问题描述】:
我正在尝试验证从 API 端点获得的数据。用户应该能够发送DateTimeOffset。目前我正在使用我自己的JsonConverter 实现来验证DateTimeOffset 的正确格式。我尝试了多种日期时间格式,但没有一个能像我想要的那样工作。
"yyyy-MM-ddTHH:mm:ss.fffK"
这适用于:
2010-01-01T01:01:01.000
2010-01-01T01:01:01.000Z
2010-01-01T01:01:01.000+01:00
问题是,它没有强制指定时间偏移或 Z,如上例所示,除此之外它工作得很好。
"yyyy-MM-ddTHH:mm:ss.fffzzz"
这仅适用于:
2010-01-01T01:01:01.000+01:00
它不接受 Z 作为时间偏移量。是否有 DateTimeOffset 格式,我可以指定它只接受以下内容:
2010-01-01T01:01:01.000Z
2010-01-01T01:01:01.000+01:00
【问题讨论】:
-
您真的需要 DateTimeOffset 吗?在读取包含时区的数据时,包含偏移量没有任何意义。时区是偏移量。
-
你的第一个例子一旦用 "yyyy-MM-ddTHH:mm:ss.fffK" 解析将有一个
DateTime.Kind的Unspecified与其他两个不同,所以你可以使用该属性来拒绝输入。 -
@steve16351 这是一个很好的解决方案。你能把它作为答案吗?
标签: c# json datetime .net-core