0

我目前看到本地计算机上的 ASP.NET WebForms 应用程序和我要部署到的服务器上的一个小差异。

我正在从数据库中检索日期(两种情况下的实际数据库相同)。日期是 1900 年 1 月 1 日。

在我的本地机器上,这在文本框中显示为“01/01/1900”

但是在服务器上显示为“1/1/1900”

将日期分配给控件的代码是:

txtEffectiveDate.Text = ((DateTime)temp.Rows[0]["effective_date"]).ToShortDateString();

其中 temp 是表示存储过程输出的 DataTable。

我已经构建了解决方案并将相关的 .dll 文件传输到服务器上,因此在这两种情况下它应该是相同的代码。我还复制了相关的 .aspx 页面,只是为了确定,但这并没有什么不同。

服务器上是否有某种设置需要调整,以便显示与本地计算机相同的日期

4

1 回答 1

3

ToShortDateString根据 DateTimeFormatInfo .ShortDatePattern 定义的模式格式化您的日期,其默认值由控制面板中的语音国际设置控制。

可能在您的工作机器上设置为dd/MM/yyyywhile on your server isd/M/yyyy

如果您想保留您的工作机器,您可以更改为

txtEffectiveDate.Text = ((DateTime)temp.Rows[0]["effective_date"]).ToString("dd/MM/yyyy");

或者,只是遵循正式路线,(请参阅 ToShortDateString 中的 MSDN 示例)

CultureInfo originalCulture = new CultureInfo(CultureInfo.CurrentCulture.Name);
originalCulture.DateTimeFormat.ShortDatePattern = "d/M/yyyy";
txtEffectiveDate.Text = ((DateTime)temp.Rows[0]["effective_date"])
                        .ToString(originalCulture.DateTimeFormat.ShortDatePattern));
于 2013-10-24T15:43:19.203 回答