【发布时间】:2010-09-21 21:16:00
【问题描述】:
我正在开发一个时间表应用程序,我希望用户能够在 TextBoxes 中输入时间,例如:8 a 或 8:00 a 等,就像在 Excel 中一样。
现在,如果您在 TextBox 中输入一个日期,然后使用 DateTime.TryParse,您可以以多种格式输入它(2007 年 1 月 31 日;2007 年 1 月 31 日;2007 年 1 月 31 日) ;2007 年 1 月 31 日;等等),.NET 会计算出来并将其转换为 DateTime。
但是当我在“8 a”或“8:00 a”之类的字符串上使用 DateTime.TryParse 时,它无法理解。
我知道我可以使用 ParseExact,但我想知道是否有更灵活的解决方案。我希望 .NET 从“8 a”或“8:00 a”获取 8:00a,并将日期组件保留为默认的 1/1/0001。
【问题讨论】:
-
是否有令人信服的理由使用文本框,而不是使用 Format=Time 的 System.Windows.Forms.DateTimePicker?
-
嗯,它是一个 WPF 应用程序,所以使用 WinForms 的东西不是我的首选。
-
啊,是的,如果您返回到 winforms,您将失去 WPF 的一些不错的功能,但这当然是可能的,而且我相信有一个日期时间控件即将出现.Net 4.
标签: c# wpf vb.net datetime .net-3.5