C#Convert.ToDateTIme函数是否将日期读为“dd / mm / yyyy”或“mm / dd / yyyy”?
我在我上传到远程共享服务器的本地计算机上有相同的应用程序。它完全在我的本地机器上读取“dd / mm / yyyy”,但在我的远程机器上,似乎将日期读作“mm / dd / yyyy”。我在两者上都有相同的文化设置“en-GB”。
我觉得这个日期转换非常不可预测。任何人都可以推荐一种从SQL Server 2005数据库中读取日期字符串的文化证明方法吗?
答案 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有日期选择器控件,对吧?然后它可以为你解析。