我喜欢Noda Time使用*Pattern
命名空间中的各种NodaTime.Text
类型处理格式化和解析值。但是,用户输入通常不像单个格式那样规则。例如,我们的应用使用时间格式"h:mm tt"
,但我们希望能够以下列任何格式解析用户输入:
h:mm tt
h:mmtt
(没有空格)h:mm t
h:mmt
(没有空格)h tt
hh:mm
有没有办法使用Noda Time来解析可能有多种格式的输入?
答案 0 :(得分:3)
(很抱歉花了这么长时间才回复此事。)
令人讨厌的是,我们似乎没有暴露过这个。
<{3}}课程中的Noda Time中的出现。不幸的是,这是目前内部的。我已经提出CompositePattern
来解决这个问题(可能在1.1时间框架内)。
目前,使用CompositePattern
中的相同代码可能最简单 - 您无需为此创建自己的IPattern<T>
实现,因为它实际上只是Parse
方法这很有用。 (实际上,您甚至可以在IEnumerable<IPattern<T>>
上将其作为扩展方法编写,但我不确定是否已经给出足够的可见性来创建相同类型的失败结果。)