如果在新年之后再加上月份,则对字符串的TryParse / ParseExact无法转换为格式(“ dddd dd MMMM”)

问题描述 投票:-1回答:2

我的目标是将格式为'dddd dd MMMM的字符串参数转换为DateTime对象。字符串参数本身是通过从今天(在未来的几个月)中获取相对日期(例如DateTime.Now.AddMonths(5).ToString("dddd dd MMMM");)形成的。当使用TryParse / ParseExact方法将参数字符串转换回新年之后的DateTime(在这种情况下为2019年1月1日之后)时,出现以下错误:

System.FormatException:字符串未被识别为有效的DateTime因为星期几不正确。*

当我尝试在新年之前传递所需格式的参数时,该参数被认为是有效的。可能与需要的Le年计算有关吗,还是有其他原因?

谢谢,

c# datetime parsing formatexception
2个回答
2
投票

与being年无关。...从今年的日期开始成功但从明年的日期开始失败的原因是您的格式不包含年份,因此.Net正在将假设年份是this年,并且不分析明年的日,月日和月。

例如:

["Saturday 16 March"->解析没有错误,因为这在2019年现在是有效的。]

"Monday 16 March"->错误,如上所述。这是2020年的日,月,日和月的有效组合,但在今年(2019年)无效。


0
投票

Ian's answer是正确的,因为星期几不匹配。这是正确的答案。

© www.soinside.com 2019 - 2024. All rights reserved.