Asp.net中的日期时间转换问题

时间:2013-12-03 10:58:51

标签: c# asp.net sql-server-2008

我正在使用ASP.NET创建一个Web应用程序。 SQL Server 2008。

在该应用程序中,我有一个表单,我想在GridView中显示记录取决于两个日期:从日期和到日期。有两个TextBox,其中我使用了Calender Extender。

当我在我的机器上运行该应用程序时,它可以正常工作,但是当我尝试在另一台机器上运行该应用程序时,我正面临DateTime转换问题。

它给了我一个例外 - Input string was not in a correct format

你能告诉我一些技巧,以便我可以在任何机器上运行我的应用程序,并使用任何DateTime格式吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

我已经多次碰到这个问题了,特别是在部署到与我的开发机器没有相同语言环境的另一台机器时。我发现避免此问题的最佳方法是使用DateTime.TryParseExact

所以我通常做的是将我的文化设置为一个恒定的文化(在我的情况下为“en-GB”),然后设置一个固定的日期格式。

从上面的链接中可以看出一个例子:

// Allow a leading space in the date string. 
if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm", enUS, 
                        DateTimeStyles.None, out dateValue))
   Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                     dateValue.Kind);
else
   Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

如果是我的情况,我会将enUS文化更改为enGB,并将日期格式更改为我期望的“dd / MM / yyyy hh:mm”。 TryParse的另一个好处还在于,如果遇到错误,您可以尝试更正或记录错误(例如数据库中的格式错误的日期)。

答案 1 :(得分:0)

请检查CultureInfo.InvariantCulture