获取错误字符串未被识别为有效的DateTime

时间:2015-04-29 11:14:56

标签: c# asp.net datetime

在gridview中显示标签上的日期和该标签的提取日期。

Datetime Date;
Label date = gvOrderExecuted.Rows[0].FindControl("lblDate") as Label;
Date = Convert.ToDateTime(date.Text);

此代码抛出错误

  

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

我正在通过日期的价值,例如' 3/31/2015'

1 个答案:

答案 0 :(得分:4)

如果您不提供任何Convert.ToDateTime,则

DateTime.Parse方法会使用CurrentCulture方法明确使用IFormatProvider设置。

看起来M/dd/yyyy不是CurrentCulture的{​​{3}},而是FormatException投放string s = "3/31/2015"; DateTime dt; if(DateTime.TryParseExact(s, "M/dd/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt)) { Console.WriteLine(dt); // 31/03/2015 00:00:00 } 的原因。

您可以使用standard date and time formatDateTime.ParseExact方法指定自定义字符串格式,例如;

'/'

DateTime.TryParseExact具有特殊含义,因为将我替换为当前文化或提供的文化日期分隔符。这意味着,当您使用该分隔符解析一个字符串时,您的解析可能会失败即使,如果您的字符串和格式完全匹配。您可以将这些字符转义为string s = "3/31/2015"; DateTime dt = DateTime.ParseExact(s, "M'/'dd'/'yyyy", CultureInfo.CurrentCulture); ,而无需担心它。

struct tm