在Delphi中如何修改控制面板中的日期格式?

解决方案 »

  1.   

    var
      str: string;
    begin
      str := 'yyyy-mm-dd';
      if SetLocaleInfoa(LOCALE_SYSTEM_DEFAULT, LOCALE_SLONGDATE, PChar(str)) then
      begin
        showmessage('更改日期格式成功');
        SendMessageA(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0);
      end;
    end;
      

  2.   

    注册表
    HKEY_CURRENT_USER\Control Panel\International\sShortDate
      

  3.   

    aiirii(ari):
    我用你的方法试了,不行,改不过来,我打开控制面板日期格式没有变为'yyyy-mm-dd',还是原来的样子。
      

  4.   

    不对啊!! 你用如下:
    yyyy-M-d
    yyyy-d-M
    yyyy'年'M'月'd'日'
    yyyy MM dd
    dddd yyyy'年'M'月'd'日'
    不同的, 试试, 我以前试过, 绝对没有问题的!!
      

  5.   

    又要得分了﹐謝謝。SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SDATE,'-');
    SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SSHORTDATE,pchar('yyyy-MM-dd'));
      

  6.   

    对,通过修改注册表procedure TForm1.Button1Click(Sender: TObject);
    var
      reg:TRegistry;
    begin
      reg:=TRegistry.Create;
      reg.RootKey:=HKEY_CURRENT_USER;
      reg.OpenKey('Control Panel\International',false);
      reg.WriteString('sLongDate','yyyy'+''''+'年'+''''+'mm'+''''+'月'+''''+'dd'+''''+'日'+'''');
      reg.CloseKey;
      reg.Free;
    end;