2012-07-02 28 views
3

我有值的文本框存储ValidFrom形式值:ObjectDataSource控件无法解析字符串为DateTime

31.01.2012 

和文化设置为:

<globalization culture="en-GB" uiCulture="en-GB"/> 
在web.config中

而现在,ObjectDataSource的更新方法:

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

我得到异常的字符串无法解析失败。但日期的格式为dd.mm.yyyy31.01.2012)是有效的GB格式,可以解析(据我所知)。我曾与下面的代码进行了测试:

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

那么怎么来了,是ObjectDataSource控件内部转换未能转换字符串(31.01.2012)到日期时间在这个例子吗?

+0

只是尝试01.31.2012,看看它的工作与否 –

+0

01.31.2012得到由ObjectDataSource转换为DateTime,但01.31.2012不转换当我打电话(只是为了测试)DateTime.Parse(“01.31.2012” )内部回传(因为我的文化设置为en-GB) – dragonfly

+0

对象类型是否可以与ODS一起使用?如果它是一种自定义类型,你能提供它的属性和字段的源代码吗? – Jeff

回答

0

据我所知,文化信息是直接从操作系统(在这种情况下,Windows)加载,您可以检查您指定格式的区域设置。这是从我的电脑截图:

http://imageshack.us/photo/my-images/96/engbg.png/

正如你可以看到短日期格式为:DD/MM/AA,所以也许有一些与您的服务器区域设置或输入应该怎么回事是:31//12而不是31.01.2012

希望这会有所帮助。