3

我有一个文本框,其值存储 ValidFrom 表单值:

31.01.2012

和文化设置为:

<globalization culture="en-GB" uiCulture="en-GB"/>

在 web.config 中。

现在,ObjectDataSource 更新方法:

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

失败,因为我得到字符串无法解析的异常。但是dd.mm.yyyy ( 31.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呢?

4

1 回答 1

0

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

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

如您所见,短日期的格式为:dd/MM/aa,因此您的服务器区域设置可能有问题,或者输入应为:31/ 01 /12 而不是 31.01.2012

希望这可以帮助。

于 2012-08-06T17:53:25.583 回答