繁体   English   中英

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

[英]Does the C# Convert.ToDateTIme function read date as “dd/mm/yyyy” or “mm/dd/yyyy”?

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

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

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

听听它的声音......服务器上的一个设置是关闭的。

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

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

         string x = "21/01/2009";

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

        Convert.ToDateTime(x, ci);

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

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

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

编辑

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM