【问题标题】:Machine Culture and DateTime机器文化和日期时间
【发布时间】:2011-08-19 08:53:10
【问题描述】:

我们错误地设置了一个带有 en-US 文化的服务器。后来我将区域设置、语言环境和 IIS 全球化更改为 en-GB。

但是,我编写的 Windows 服务有问题。每当 DateTime.ToString() 完成时,它仍然使用美国格式。我知道我可以指定我希望字符串所在的文化,但我不想更改我的所有代码。它应该只使用英国格式,因为它在机器设置中的所有位置都发生了变化。

也许我错过了一个设置?除了改代码,大家有什么建议吗?

【问题讨论】:

    标签: c# datetime cultureinfo


    【解决方案1】:

    当您使用控制面板更改区域设置时,您需要选中“将所有设置应用到当前用户帐户和默认用户配置文件”复选框。在 XP 中,它位于区域和语言选项的高级选项卡上。

    您的 Windows 服务可能在没有配置文件的帐户下运行(例如 LocalSystem),因此将使用默认的用户配置文件设置。

    您还可以使用 RegEdit 检查默认用户配置文件的区域设置 - 它们位于注册表项 HKEY_USERS\.DEFAULT\Control Panel\International 下。

    尽管如此,我还是会考虑更改代码 - Windows 服务通常应该不知道机器的文化,这样您就可以避免维护问题。

    【讨论】:

    • 此更改后必须重新启动服务。
    • 我提到它是一个服务器,所以必须去区域设置 -> 管理 -> 复制。
    【解决方案2】:

    如果您的 Windows 服务在系统帐户上运行,您需要应用正确的 (en-GB) 语言设置also to reserved accounts

    【讨论】:

    • 其他答案是第一个,但这也很有帮助。
    • 这个链接好像坏了(6年后,并不奇怪):(
    猜你喜欢
    • 2018-11-03
    • 2012-11-27
    • 1970-01-01
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    • 2016-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多