Delphi 修改系统时间格式为:'yyyy-MM-dd HH:mm:ss', 'yyyy''年''M''月 ''
Posted acmexyz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi 修改系统时间格式为:'yyyy-MM-dd HH:mm:ss', 'yyyy''年''M''月 ''相关的知识,希望对你有一定的参考价值。
声明:
//记录系统日期格式:
GSysShortDate, GSysLongDate, GSysTimeFormat: string;
//获取系统日期格式:
procedure GetSysDateTimeFormat();
//设置系统日期格式:
procedure SetSysDateTimeFormat(GSysShortDate, GSysLongDate, GSysTimeFormat: string);
实现:
//获取系统日期格式:
procedure GetSysDateTimeFormat();
var
i: Integer;
buf: PChar;
begin
getmem(buf, 100);
i := 100; // i必须在调用前赋值为buf缓冲区的长度。如果设为0或负值,将取不到设置的值
GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SSHORTDATE, buf, i); // 取当前用户设置,短日期格式。
GSysShortDate := string(buf);
i := 100;
GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SLONGDATE, buf, i); // 取长日期格式
GSysLongDate := string(buf);
i := 100;
GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_STIMEFORMAT, buf, i); // 取时间格式
GSysTimeFormat := string(buf);
freemem(buf);
end;
// 设置系统日期格式:
procedure SetSysDateTimeFormat(GSysShortDate, GSysLongDate, GSysTimeFormat: string);
var
p: DWord;
begin
SetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SSHORTDATE, PChar(GSysShortDate)); // 短日期
SetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SLONGDATE, PChar(GSysLongDate));
SetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_STIMEFORMAT, PChar(GSysTimeFormat)); // 设置时间
SendMessageTimeOut(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0, SMTO_ABORTIFHUNG, 10, p);
// 设置完成后必须调用,通知其他程序格式已经更改,否则即使是程序自身也不能使用新设置的格式
end;
使用:
GetSysDateTimeFormat();
if GSysShortDate <> ‘yyyy-MM-dd‘ then
SetSysDateTimeFormat(‘yyyy-MM-dd‘, ‘yyyy‘‘年‘‘M‘‘月 ‘‘d‘‘日‘‘‘, ‘HH:mm:ss‘);
以上是关于Delphi 修改系统时间格式为:'yyyy-MM-dd HH:mm:ss', 'yyyy''年''M''月 ''的主要内容,如果未能解决你的问题,请参考以下文章
用delphi做修改按钮的时候因为数据有空值 当数据为空时候不能修改报错显示错误类型的值
如何设置delphi中datetimepicker1显示为2011-1-17 11:39:03 格式