我有用户输入的时间,需要解析为DateTime或TimeSpan(日期并不重要)。例如,需要能够解释
“8a”,“0800”,“8am”,“8 am”,“8:00 a”,“8:00 am”=>如“08:00”
我尝试过DateTime.ParseExact方法,但它依赖于小时和分钟之间的冒号分隔符。因此,上述前4个案例失败。 TimeSpan也依赖于冒号。
如何创建一种相对强大的方式来处理用户进入时间的多种方式?一个想法是为System.Globalization.DateTimeFormatInfo创建详尽的格式化可能性列表。但我不确定如何处理角色'a'或'am'等。
想法。
答案 0 :(得分:2)
前四种情况很好:
查看this以获取不同的toString匹配
答案 1 :(得分:1)
为什么不改变一点UI
1-有两个组合框用于选择时间1-12个数字
用于选择AM / PM的2-秒组合框,默认为AM。通过这种方式,您可以更好地控制时间格式,而不需要根据时间格式编写大量分支代码。