gpt4 book ai didi

c# - ParseExact 无法解析 RFC 3339 Internet 日期/时间格式的字符串

转载 作者:行者123 更新时间:2023-11-30 21:26:58 24 4
gpt4 key购买 nike

C# 似乎无法解析有效的 RFC 3339 格式的时间:

DateTime.ParseExact("2019-12-31T00:00:00.123456789+01:00", "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffffzzz", null)

这一行抛出一个异常,而这一行工作得很好:

DateTime.ParseExact("2019-12-31T00:00:00.1234567+01:00", "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffzzz", null)

所以似乎有毫秒限制,但我找不到任何相关文档。这是应该的样子吗?


要解析这个日期的原因是我有一个输入日期字段。我们使用 OAS (Swagger) date-time 格式,该格式非常清楚地表明 RFC 3339 Internet 日期/时间格式中的任何日期都应该有效。现在来自规范 here 第 5.6 节

time-secfrac    = "." 1*DIGIT

据我所知,这意味着最多应允许 9 位数字,并且要 100% 兼容,我们必须允许这些输入,但 C# 似乎甚至不支持这一点。

关于如何修复它有什么想法吗?

最佳答案

根据 MSDN 规范,您只能使用 fffffff

The fffffff custom format specifier represents the seven most significant digits of the seconds fraction; that is, it represents the ten millionths of a second in a date and time value.

在你的第一个例子中

DateTime.ParseExact("2019-12-31T00:00:00.123456789+01:00", "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffffzzz", null)

您正在使用 fffffffff,它对于 .NET 自定义日期和时间格式字符串更精确

关于c# - ParseExact 无法解析 RFC 3339 Internet 日期/时间格式的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58506117/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com