机器文化和日期时间

时间:2011-08-19 08:53:11

标签: c# datetime cultureinfo

我们错误地建立了一个具有美国文化的服务器。后来我将区域设置,区域设置和IIS全球化更改为en-GB。

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

也许我错过了一个场景?除了更改代码之外,有没有人有任何建议?

2 个答案:

答案 0 :(得分:2)

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

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

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

尽管如此,我会考虑更改代码 - Windows服务通常应该对机器的文化不了解,并且您将避免维护问题。

答案 1 :(得分:1)

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