我正在将在 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。本文帮助解决了该问题:
以下是修复的简要概述:
- 打开 regedit 并导出
CURRENT_USER\Control Panel\International
- 使用以下用户的 SID 编辑 .reg 文件
HKEY_USERS
- 导入 .reg 文件
- 对每个具有不正确国际设置的 SID 重复步骤 2 和 3。