解析文本框中的日期时间
本文关键字:日期 时间 文本 | 更新日期: 2023-09-27 18:03:14
我在一个简单的文本框中有日期时间。文本框值的格式可以是DD/MM/YYYY或MM/DD/YYYY。我想用DateTime.Parse(string)来解析这个。目前,对于某些日期它可以工作,而对于其他日期则抛出Exception。我该如何处理?我如何确保无论提供什么格式,它总是解析正确(只要它是有效日期)?
Thanks in advance:)
编辑
由于没有固定的答案,我修改了我的问题,问我如何将其转换为MM/DD/YYYY?我应该在DateTime.Parse的IFormatProvider中提供什么?
DateTime需要知道如何解析日期,否则它将不知道05/07/2011是7月5日还是5月7日。使用日历控件来消除这种模糊性不是更好吗?
我建议使用固定格式。您甚至可以允许用户选择他们想要使用的格式。但你绝对需要知道格式。然后你可以用DateTime.TryParseExact
。例如,01/03/2011是什么意思?可以是mm/dd/yyyy 或 dd/mm/yyyy。
我来这里是想找出一个比我的更好的解决方案。我已经在其他帖子和谷歌上看到了一些这样的解决方案。我认为效果更好的是:
DateTime date;
bool isDate = (DateTime.TryParseExact(txtbxDATETIME.Value,
"yyyy'/'MM'/'dd",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out date));
//possible use:
DateTime someDATEorVAr = (isDate) ? date : DateTime.Now;
希望有人觉得有用
这个解析问题可以通过使用TryParse(String, IFormatProvider, DateTimeStyles, DateTime)变量来解决,这样文化信息(我最常用的是使用CultureInfo.CurrentCulture)可以传递给它,从而消除歧义。
DateTime。TryParse
Vijay