【问题标题】:Robust DateTime parser library for .NET [duplicate].NET 的强大的 DateTime 解析器库 [重复]
【发布时间】:2011-11-09 23:44:40
【问题描述】:

.NET 非常需要一个健壮的 DateTime 解析器库,更喜欢 C# DateTime.TryParse 支持的格式很少 我知道这个问题是在一年前提出的,但没有好的答案。 那里必须有好的库!商业或开源

我看了noda-time。 但是博客说它还没有做解析

日期分为两类:

日期格式:所有各种日期格式

  • 2011-09-09T20:00:00
  • 2011 年 9 月 29 日
  • 2011 年 9 月 6 日晚上 7:00
  • 2009 年 1 月 1 日下午 12:00

自然日期:人类如何说/写它

  • 今天
  • 明天
  • 星期一,下午 6 点
  • 每周一,下午 6 点
  • 每周五
  • 每个月的第一个星期一
  • 每月最后一个星期日
  • 每天
  • 每月 1 日

【问题讨论】:

  • 我认为你要么需要等待 Noda Time(正在解析),要么自己做。如果您为 Noda Time 做出贡献,您可以加快速度……

标签: c# .net parsing time date


【解决方案1】:

您可以使用 Sergey Stoyan 的 C# Date Time Parser

【讨论】:

  • Sergey 的解析器运行良好。推荐。所有麻烦都转换为:if (DateTimeRoutines.TryParseDate(RawDate, DateTimeRoutines.DateTimeFormat.UK_DATE, out parsedDate))
  • 太棒了!正是我正在寻找的,除了它按“最有可能”的日期时间格式而不是“第一”对它们进行排序,但它是开源的,很容易修改。
【解决方案2】:

不确定您在寻找什么,但我喜欢 DateTime.TryParseExact() 方法。

【讨论】:

  • TryParseExact 不会强制您自己提供格式吗?我认为 OP 想要一个库来为您解析 DateTime.TryParse 但具有更多功能。但是,是的,您可以使用 TryParseExact 构建一个解析方法,该方法将涵盖上述情况。
  • @arviman:TryParseExact 有一个重载,它采用一组格式。但是内置的 BCL 日期时间支持不会执行 Q 指定的“自然日期”。
  • 日期来自网站或用户输入,格式未知。解析已知格式很容易检测,解析未知格式非常困难。
猜你喜欢
  • 1970-01-01
  • 2011-09-20
  • 2018-06-26
  • 2015-12-19
  • 2012-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多