【发布时间】:2025-12-22 17:20:08
【问题描述】:
嗨,我给用户和 ajax 日历扩展器提供了一个文本框,以选择 dd/mm/yyyy 格式的日期,之后我使用以下函数将其转换为 mm/dd/yyyy 格式以插入到 sql server 数据库中,但是它在一页中无法正常工作,我收到错误日期时间转换错误,而在其他页面中,我必须输入 yyyy/mm/dd 格式才能将数据插入数据库。我的代码在 localhost 中运行良好,但在服务器中出现了这些错误。我的功能是
protected string getDate_MDY(string inDate)
{
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-GB");
DateTime dtProjectStartDate = Convert.ToDateTime(inDate);
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
return (Convert.ToDateTime(dtProjectStartDate).ToString("MM/dd/yyyy"));
}
为了插入,我使用了 getDate_MDY(txtcreatedate.text);
我只想通过从文本框中获取 dd/mm/yyyy 格式将我的正确日期插入数据库。 .请告诉我修改它的正确方法...谢谢
【问题讨论】:
-
所有进入数据库的日期值都应该是 yyyy-MM-dd 格式
-
其实@Hugo 那个格式不安全;试试
SET LANGUAGE FRENCH; SELECT DATENAME(MONTH, CONVERT(DATETIME,'2015-03-11'));- 你会期待mars,但你会得到novembre。法语不是唯一可能导致此问题的设置。见sqlblog.com/blogs/aaron_bertrand/archive/2009/10/16/… -
您为什么要尝试将区域性和格式不明确的字符串转换为不同的区域性和格式不明确的字符串?要将日期传递给 SQL Server,您需要一个强类型的 DATE 或 DATETIME 参数,并且您不想担心格式。如果您绝对需要传递字符串文字,则 only 不带时间的日期的安全格式是
YYYYMMDD。其他任何事情都可能被误解。我还建议不要向用户显示dd/mm/yyyy,因为他们可能会像软件一样误解这些内容。 -
有趣,谢谢@AaronBertrand,约会太痛苦了。
-
我必须显示 dd/mm/yyyy 格式,因为用户通常使用这种格式。他们想先查看日期
标签: c# asp.net sql-server asp.net-ajax