代码之家  ›  专栏  ›  技术社区  ›  Aishwarya Shiva

System.FormatException:尝试转换mm/dd/yyyy时,无法将字符串识别为有效的日期时间

  •  0
  • Aishwarya Shiva  · 技术社区  · 7 年前

    我有以下C方法:

    DateTime ConvertStringToDate(string dateInString)
    {
        try {
            //string SSD = dateInString;
            //DateTime date = Convert.ToDateTime(SSD);
            //string strDate = String.Format("{0:yyyy-MM-dd HH:mm:ss.fff}", date);
            //return Convert.ToDateTime(strDate);
    
            return DateTime.ParseExact(dateInString, "MM/dd/yyyy", CultureInfo.InvariantCulture);
        }
        catch (Exception) { }
        return DateTime.Today;
    } 
    

    comment中的代码是我以前尝试过的另一种方式。

    我在印度,正在为我在美国的客户开发一个asp.net webforms应用程序。在其中一个表单上,我的客户将在文本框中输入日期,如6/20/2018,格式为mm/dd/yyyy。

    但从两个方面来看我都犯了这个错误: System.FormatException: 'String was not recognized as a valid DateTime.'

    我试了很多办法,但都没有奏效。

    5 回复  |  直到 7 年前
        1
  •  6
  •   Rafalon    7 年前
    return DateTime.ParseExact(dateInString, "M/d/yyyy", CultureInfo.InvariantCulture);
    

    Check it here

    我的回答和难以置信的不同之处在于 dd d 所以如果你的用户写 6/6/2018 它也会起作用的

        2
  •  2
  •   Fabulous    7 年前

    您的日期格式为mm/dd/yyyy,您的输入不匹配。现在是年/月/日

    根据您的意见,要解决2018年6月1日的问题,您需要按照以下M/D/YYYY执行

        3
  •  0
  •   Mureinik    7 年前

    您的格式字符串缺少AM/PM deisgnator:

    return DateTime.ParseExact
        (dateInString + " 12:00:00 AM", "MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);
        // Here ---------------------------------------------^
    
        4
  •  0
  •   Dmitriy S    7 年前

    尝试不与字符串“am”连接

        5
  •  0
  •   Fakhar Ahmad Rasul    7 年前

    几天前我也遇到了同样的异常,当时是7月9日,我只是在0后面加了9来匹配日期格式。

    尝试在您的月份中追加0以匹配日期格式中的mm

    推荐文章