我正在尝试将"31.01.2017 07:56:29.470000000"
日期时间字符串解析为日期时间格式。
使用的代码:
DateTime requiredDate;
string date = "31.01.2017 07:56:29.470000000";
DateTime.TryParseExact(date,
"dd.MM.yyyy hh:mm:ss.fffffff",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out requiredDate);
注意:日期字符串是“31.01.2017 07:56:29.470000000”,但是如果我使用“31.01.2017 07:56:29.4700000”那么它工作正常。
请解析“31.01.2017 07:56:29.470000000”。
答案 0 :(得分:5)
问题在于解析字符串中允许的最大f
个数:最大值为fffffff
(7个分数)。你的字符串包含其中的9个。
您可以在documentation中找到此限制。它提到了f
和fffffff
之间的所有可能值,但没有进一步说明。
答案 1 :(得分:2)
问题在于f
的数量,最多为7.您使用的是符合ISO 8601的往返日期/时间模式。请参阅documentation。
“O”或“o”标准格式说明符对应于“yyyy” - 'MM' - 'dd'T'HH':'mm':'ss'。' fffffff K“DateTime值的自定义格式字符串和”yyyy“ - ”MM“ - ”dd'T'HH“:”mm“:”ss“。” fffffff zzz“自定义格式字符串DateTimeOffset值。
如您所见,文档中指示的格式只有f
的7位数字。
要解决您的问题,您应该从输入中删除最后两位数字。