C#Convert.ToDateTIme函数是否将日期读为“dd / mm / yyyy”或“mm / dd / yyyy”?

时间:2009-04-21 06:19:53

标签: c# .net sql-server-2005 datetime

C#Convert.ToDateTIme函数是否将日期读为“dd / mm / yyyy”或“mm / dd / yyyy”?

我在我上传到远程共享服务器的本地计算机上有相同的应用程序。它完全在我的本地机器上读取“dd / mm / yyyy”,但在我的远程机器上,似乎将日期读作“mm / dd / yyyy”。我在两者上都有相同的文化设置“en-GB”。

我觉得这个日期转换非常不可预测。任何人都可以推荐一种从SQL Server 2005数据库中读取日期字符串的文化证明方法吗?

3 个答案:

答案 0 :(得分:4)

声音很好......服务器上的其中一个设置已关闭。

我会用精细的牙齿梳子检查“地区和语言”选项,并确保某些东西不会被覆盖,但如果失败了。

您可以尝试明确设置文化信息

         string x = "21/01/2009";

        CultureInfo ci = new CultureInfo("en-GB");

        Convert.ToDateTime(x, ci);

答案 1 :(得分:3)

为什么不简单地使用datetime数据类型? 然后,从您的sql数据读取器,使用:reader.GetDateTime(int column)

另一种选择:如果你必须在字符串中传递日期,请使用ISO格式:yyyy-MM-dd

答案 2 :(得分:2)

您的日期如何实际存储在SQL Server中?如果它们存储为datetime,那么您应该能够将它们作为DateTime值读取,而不需要使用Convert.ToDateTime()。你能告诉我们查询和/或C#代码吗?

修改

在你的问题结束时,你把我提到了SQL Server!您是否考虑过使用DateTimePicker而不是TextBox? ASP.NET有日期选择器控件,对吧?然后它可以为你解析。