解析文本框中的日期时间

本文关键字:日期 时间 文本 | 更新日期: 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