*Pattern
我喜欢 Noda Time 使用命名空间中的各种类型来处理格式化和解析值NodaTime.Text
。但是,用户输入通常不像单一格式那样规则。例如,我们的应用程序使用时间格式"h:mm tt"
,但我们希望能够解析以下任何格式的用户输入:
h:mm tt
h:mmtt
(没有空间)h:mm t
h:mmt
(没有空间)h tt
hh:mm
- 等等...
有没有办法使用 Noda Time 来解析可能是多种格式的输入?
*Pattern
我喜欢 Noda Time 使用命名空间中的各种类型来处理格式化和解析值NodaTime.Text
。但是,用户输入通常不像单一格式那样规则。例如,我们的应用程序使用时间格式"h:mm tt"
,但我们希望能够解析以下任何格式的用户输入:
h:mm tt
h:mmtt
(没有空间)h:mm t
h:mmt
(没有空间)h tt
hh:mm
有没有办法使用 Noda Time 来解析可能是多种格式的输入?
(抱歉这么久才回复。)
令人讨厌的是,看起来我们还没有暴露这一点。
它出现在CompositePattern
课堂上的野田时间。不幸的是,这目前是内部的。我已经提出了问题 147来解决这个问题(可能在 1.1 的时间范围内)。
目前,使用相同的代码可能是最简单的CompositePattern
——你不需要为此创建自己的IPattern<T>
实现,因为它只是真正Parse
有用的方法。(实际上,您甚至可以将它写为 上的扩展方法IEnumerable<IPattern<T>>
,尽管我不确定我们是否已经提供了足够的可见性来创建相同类型的失败结果。)