在插入期间,字符串未被识别为有效的日期时间

本文关键字:识别 有效 时间 日期 插入 字符串 | 更新日期: 2023-09-27 17:50:21

当我尝试转换为日期时间时,我得到以下错误:

字符串未被识别为有效的日期时间。

 cost.b_date = DateTime.Parse(c_date.Text) ;//c_date.Text = 12/28/2012

Then i try

    string date = string.Format("{0:yyyy-MM-dd}",c_date.Text);
    cost.b_date = DateTime.Parse(date) ;

但是我得到相同的异常如何解决这个问题

在插入期间,字符串未被识别为有效的日期时间

输入是字符串时使用string.Format是没有意义的。

如果您知道字符串的格式,则应该使用DateTime.ParseExactDateTime.TryParseExact。例如,对于您得到的字符串,您可以使用:

DateTime date = DateTime.ParseExact(text, "MM/dd/yyyy",
                                    CultureInfo.InvariantCulture);

你应该考虑:

  • 这是用户输入吗?如果是这样,使用TryParseExact更容易检测用户错误而不会出现异常。
  • 你确定知道确切的格式吗?如果没有,使用DateTime.TryParse可能更合适。
  • 你真的了解这里的文化吗?如果它不是当前线程的区域性,你应该显式指定它。
  • 得到的值作为文本开始吗?如果您可以使用另一种输入形式,将值作为DateTime开始,那将是可取的。
CultureInfo provider = CultureInfo.InvariantCulture;
DateTime result = DateTime.ParseExact(c_date.Text, "d", provider);

尝试使用DateTime.ParseExact.

DateTime date = DateTime.ParseExact(c_date.Text, "yyyy/MM/dd", null);