IIS 上托管应用程序上的字符串到日期时间转换失败

Posted

技术标签:

【中文标题】IIS 上托管应用程序上的字符串到日期时间转换失败【英文标题】:String to date time conversion fails on hosted apllication on IIS 【发布时间】:2015-03-06 10:14:24 【问题描述】:

我有一个带有 ole db 连接的 MS Access 数据库的 asp.net 应用程序。在使用 IIS 调试解决方案时,从数据库中选择一个值并将其转换为日期时间时,我会将日期时间格式从“dd/MM/yyyy”更改为 MM/dd/yyyy 并引发错误?请为此提出解决方案?

strQuery += " WHERE (CDate(Shift.[ShiftDate])>=CDate('" + new DateTime(selectedDate.Year, selectedDate.Month, 1).ToShortDateString() + "') and CDate(Shift.[ShiftDate])<=CDate('" + new DateTime(selectedDate.Year, selectedDate.Month, 1).AddMonths(1).AddDays(-1).ToShortDateString() + "'))";

【问题讨论】:

你的代码在哪里? strQuerey += " WHERE (CDate(Shift.[ShiftDate])>=CDate('" + new DateTime(selectedDate.Year, selectedDate.Month, 1).ToShortDateString() + "')和 CDate(Shift.[ShiftDate]) 【参考方案1】:

我敢打赌,您的 iis 服务器和调试环境有不同的文化。将文化传递给解析方法。

DateTime.Parse(dateStringVar, new CultureInfo("en-US", false));

【讨论】:

感谢您的回答。这是一个带有 Ms Access 数据库的 ASP.net 应用程序,我的代码是 strQuerey += " WHERE (CDate(Shift.[ShiftDate])>=CDate('" + new DateTime(selectedDate.Year, selectedDate.Month, 1)。 ToShortDateString() + "') 和 CDate(Shift.[ShiftDate]) ToShortDateString 方法的输出字符串取决于当前流语言环境。这很可能是问题的原因。 谢谢。您能否为此提出任何解决方案 您可以更改当前流的语言环境或检查 ToShortDateString 上是否有任何过载与语言环境是输入参数。

以上是关于IIS 上托管应用程序上的字符串到日期时间转换失败的主要内容,如果未能解决你的问题,请参考以下文章

在 IIS 上托管 WCF 后出现“请求错误”

WCF REST - 在 IIS 6 上托管的问题

在 IIS 上托管后,引导字形图标显示为问号

HTTP 错误 500.19 - 在 IIS 上托管时出现内部服务器错误 [重复]

SqlException (0x80131904):在 Azure 上托管的 .NET 6 WebAPI 上的用户“dbuser”登录失败

在具有 80 端口的 IIS 上托管 2 个网站 1,在 Xampp 8081 端口上托管 1 个网站