ObjectDataSource无法将字符串解析为DateTime

我有一个带有值的文本框,用于存储ValidFrom表单值:

31.01.2012 

和文化设置为:

  

在web.config中。

而现在,ObjectDataSource更新方法:

  public static void UpdateLac(int id, DateTime ValidFrom) { /// ... } 

失败,因为我得到exception,无法解析字符串。 但格式为dd.mm.yyyy31.01.2012 )的日期是有效的en-GB格式,可以解析(据我所知)。 我用以下代码测试了它:

  DateTimeFormatInfo dtfi = CultureInfo.CreateSpecificCulture("en-GB").DateTimeFormat; var date = DateTime.Parse("31.01.2012", dtfi); Console.Write(date.ToLongDateString()); 

那么为什么ObjectDataSource内部转换无法在此示例中将字符串 (31.01.2012)转换为DateTime

据我所知,文化信息是直接从操作系统加载的(在本例中为windows),您可以查看区域设置以了解指定的格式。 这是我的电脑截图:

http://sofzh.miximages.com/c%23//

正如您所看到的,短日期格式为:dd / MM / aa,因此您的服务器区域设置可能会发生变化,或输入应为:31/01/12而不是31.01.2012

希望这可以帮助。