为什么这种解析日期时间的尝试失败了

本文关键字:失败 时间 日期 为什么 | 更新日期: 2023-09-27 18:32:59

This:

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

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

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

为什么这种解析日期时间的尝试失败了

有效日期)
验证很容易

,只需将日期更改为有效日期(11 月 9 日星期日),猜猜怎么着,它有效。 您还将看到该年设置为 2014 年。

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

DateTime.TryParse 的文档中,它陈述了以下内容:

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

在您的示例中,缺少年份,因此它将插入当前年份,给出 2014 年 11 月 11 日星期日。我假设它是无效的,因为 11 月 11 日不是星期日。该文档确实包括包含日期名称的示例。

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