【问题标题】:Why does this attempt to parse DateTime fail?为什么这种解析 DateTime 的尝试会失败?
【发布时间】:2014-12-04 05:13:33
【问题描述】:

这个:

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

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

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

【问题讨论】:

  • 顺便问一下你的CurrentCulture是什么?

标签: c# datetime tryparse


【解决方案1】:

验证很容易,只需将日期更改为有效日期(11 月 9 日星期日),然后猜猜看,它可以工作。您还会看到年份设置为 2014 年。

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

【讨论】:

    【解决方案2】:

    DateTime.TryParsedocumentation 中,声明如下:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-14
      • 2018-11-30
      • 2016-02-08
      • 2010-09-26
      • 1970-01-01
      • 1970-01-01
      • 2020-05-05
      • 1970-01-01
      相关资源
      最近更新 更多