Windows 7 忽略短日期格式

Windows 7 忽略短日期格式

我正在将在 Windows Server 2003 上运行的 ASP.net Web 应用程序的副本移动到 Windows 7 笔记本电脑。

在 win server 2003 机器上,区域设置为美国,短日期格式为 M/DD/YYYY。在 Windows 7 机器上,短日期格式为 DD/MM/YYYY,这导致应用程序崩溃。

我尝试将控制面板->区域下的所有区域设置更改为美国,然后重新启动,但没有成功。我还尝试在区域设置下将短日期格式明确设置为 M/DD/YYYY,但 Web 应用程序似乎忽略了它。

我如何更改 Windows 7 短日期格式以便 ASP.net 应用程序能够识别它?

答案1

最好的方法是在 Web 应用程序中而不是在操作系统中进行设置。

我的猜测是,当您尝试更改语言环境时,它只会应用于您登录的用户,而 Web 应用程序不会以该用户身份运行。您必须以某种方式更改默认系统语言环境 - 虽然我认为这是 Web 应用程序应该处理的事情(.NET 支持通过代码/声明设置任何语言环境和日期格式)。

答案2

看来对短日期(可能还有长日期格式)的处理有误。我刚刚从 Vista Ultimate 迁移到 Windows 7 Home Premium。

我已在语言和区域设置中将所有设置设为英语(澳大利亚)(完成所有选项卡,包括高级设置),并将短日期显示设置为 dd-MMM-yy

我的 pb 与 Element 相反,在 Vista 下,我的日期显示为 DD-MMM-YY,在 Excel 2007 和 MS-Money 2005 中都是如此,但现在它们显示为 DD-MM-YY。在 Excel 中,这些字段的格式显示为 *,表示它们依赖于默认的区域和语言设置,但显然并非如此。

干杯,PF

答案3

我在本地 IIS 上运行它时遇到了这个问题,我尝试转到控制面板 -> 区域 -> 管理将设置复制到新用户帐户和服务帐户,但似乎无法修复 ApplicationPoolIdentity。本文帮助解决了该问题:

http://blogs.microsoft.co.il/idof/2010/08/05/different-culture-settings-between-iis-and-aspnets-development-server/

以下是修复的简要概述:

  1. 打开 regedit 并导出CURRENT_USER\Control Panel\International
  2. 使用以下用户的 SID 编辑 .reg 文件HKEY_USERS
  3. 导入 .reg 文件
  4. 对每个具有不正确国际设置的 SID 重复步骤 2 和 3。

相关内容