用function FormatDateTime(const Format: string; DateTime: TDateTime): string;
The following example assigns 'The meeting is on Wednesday, February 15, 1995 at 10:30 AM' to the string variable S.
S := FormatDateTime('"The meeting is on " dddd, mmmm d, yyyy, " at " hh:mm AM/PM',StrToDateTime('2/15/95 10:30am'));
或者改时间变量格式.
The following example assigns 'The meeting is on Wednesday, February 15, 1995 at 10:30 AM' to the string variable S.
S := FormatDateTime('"The meeting is on " dddd, mmmm d, yyyy, " at " hh:mm AM/PM',StrToDateTime('2/15/95 10:30am'));
或者改时间变量格式.
SetLocaleInfoa(LOCALE_SYSTEM_DEFAULT, LOCALE_SSHORTDATE , PChar(str));
SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0);
SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SSHORTDATE,pchar('yy-MM-dd'));
注意:如果更改LOCALE_SYSTEM_DEFAULT不成功,可以像我这里,更改当前用户或缺省用户。
yy-mm-dd与yy-MM-dd是不一样的!不信,如果你修改成功,到资源管理其中查看文件的详细列表,很难看的!
http://www.csdn.net/expert/Topic/55957.shtmvar
str: string;
begin
str := RadioGroup1.Items.Strings[RadioGroup1.ItemIndex];
if SetLocaleInfoa(LOCALE_SYSTEM_DEFAULT, LOCALE_SSHORTDATE , PChar(str)) then
begin
showmessage('short OK!');
//if SetLocaleInfoa(LOCALE_SYSTEM_DEFAULT, LOCALE_STIMEFORMAT, PChar('m-d-yy')) then
//begin
// showmessage('Location OK!');//end;
SendMessageA(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0);
end;
end;
为了方便测试我用了radioGroup,items 内容如下
yy-d-m
d-yy-m
m-d-yy
yy-m-d
yyyy-m-d
yyyy-d-m
传进参数必须 null-terminate 字符串指针。我用 pchar ,而且字符串格式只能写成这样 'm-d'而不是'mm-dd'('yyyy'可以用),不然改不了长格式很灵活。随便改.RadioGroup Items 如下
yyy'年'dd'日'-mm
d-yyyy-mm
mm-dd-yyyy
yyyy-mm-dd代码如下var
str: string;
begin
str := RadioGroup2.Items.Strings[RadioGroup2.ItemIndex];
if SetLocaleInfoa(LOCALE_SYSTEM_DEFAULT, LOCALE_SLONGDATE , PChar(str)) then
begin
showmessage('Loan OK!');
SendMessageA(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0);
end;
end;
//