如何使用代码在控制面板中的区域和语言选项中更新/更改系统日期时间格式?

时间:2011-05-18 06:20:28

标签: c# .net

我正在寻找.NET中的代码(C#) 更改“控制面板”的“区域选项”中的系统日期/时间格式 对于Windows XP。

4 个答案:

答案 0 :(得分:2)

要更改日期时间格式,请查看此http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/263d73b2-8611-4398-9f09-9aa76bbf325e/

您基本上需要使用本机Win API方法SetLocaleInfo

答案 1 :(得分:1)

如果您想暂时更改区域设置,可以使用以下代码:

System.Globalization.CultureInfo oldCI = System.Threading.Thread.CurrentThread.CurrentCulture;
            System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");

...

YOUR CODE

...

System.Threading.Thread.CurrentThread.CurrentCulture = oldCI;

要了解哪种区域设置最佳,请检查:

CultureInfo

More reading on System.Globalisation

答案 2 :(得分:0)

如果我理解正确,您希望以编程方式永久地更改区域设置,而不仅仅是针对当前流程。

您需要的信息存储在注册表中。对于密钥下的当前用户:

HKCU\Control Panel\International

新用户或没有个人资料的用户的默认设置:

HKEY_USERS\.Default\Control Panel\International

您可以以编程方式更改注册表值,然后按a response to this question中所述广播WM_SETTINGCHANGE消息。

答案 3 :(得分:-1)

public void changedatetimeformat()
{
    RegistryKey regkey = Registry.CurrentUser.OpenSubKey(@"Control Panel\International", true);
    regkey.SetValue("sShortDate", "dd/MM/yyyy");
    regkey.SetValue("sLongDate", "dd/MM/yyyy");
}

然后 重新启动系统