如何使用Noda Time解析多种格式?

时间:2012-11-09 21:16:31

标签: nodatime

我喜欢Noda Time使用*Pattern命名空间中的各种NodaTime.Text类型处理格式化和解析值。但是,用户输入通常不像单个格式那样规则。例如,我们的应用使用时间格式"h:mm tt",但我们希望能够以下列任何格式解析用户输入:

  • h:mm tt
  • h:mmtt(没有空格)
  • h:mm t
  • h:mmt(没有空格)
  • h tt
  • hh:mm
  • 等......

有没有办法使用Noda Time来解析可能有多种格式的输入?

1 个答案:

答案 0 :(得分:3)

(很抱歉花了这么长时间才回复此事。)

令人讨厌的是,我们似乎没有暴露过这个。

<{3}}课程中的Noda Time中的出现。不幸的是,这是目前内部的。我已经提出CompositePattern来解决这个问题(可能在1.1时间框架内)。

目前,使用CompositePattern中的相同代码可能最简单 - 您无需为此创建自己的IPattern<T>实现,因为它实际上只是Parse方法这很有用。 (实际上,您甚至可以在IEnumerable<IPattern<T>>上将其作为扩展方法编写,但我不确定是否已经给出足够的可见性来创建相同类型的失败结果。)