为什么尝试解析DateTime失败?

时间:2014-12-04 05:13:34

标签: c# datetime tryparse

此:

bool ret = DateTime.TryParse("Sunday 11 November", out date);

无法解析日期字符串?为什么呢?

我意识到字符串是一个不完整的日期,但为什么框架不能处理它?框架是否总是试图返回合法的日期?因为如果是这样,那就解释了它(2014年11月11日星期日不是有效日期)

2 个答案:

答案 0 :(得分:1)

它很容易验证,只需将日期更改为有效日期(11月9日星期日),并猜测它是什么,它有效。您还会看到年份设置为2014年。

所以是的,似乎如果日期无效,解析将失败。

答案 1 :(得分:1)

DateTime.TryParse {{1}}中,它说明了以下内容:

  

如果可能,此方法会尝试忽略无法识别的数据,并且填充   缺少当前日期的月,日和年信息

在您的示例中,年份缺失,因此它将插入当前年份,即2014年11月11日星期日。我假设它无效,因为11月11日不是星期日。文档中包含的示例包含当天的名称。

看到这个问题很有意思,因为TryParse的这个非直观的功能(填补了缺失的部分)在今天我的办公室里咬了一个人。