我正在使用ASP.NET创建一个Web应用程序。 SQL Server 2008。
在该应用程序中,我有一个表单,我想在GridView中显示记录取决于两个日期:从日期和到日期。有两个TextBox,其中我使用了Calender Extender。
当我在我的机器上运行该应用程序时,它可以正常工作,但是当我尝试在另一台机器上运行该应用程序时,我正面临DateTime转换问题。
它给了我一个例外 - Input string was not in a correct format
你能告诉我一些技巧,以便我可以在任何机器上运行我的应用程序,并使用任何DateTime格式吗?
提前致谢。
答案 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