无特别需要,不要更改系统格式,而只在自己的应用程序中更改格式。 Delphi 为我们提供了一些全局变量,通过设置这些变量的值,可以在应用程序中指定时间格式。 var CurrencyString: string;var CurrencyFormat: Byte; var NegCurrFormat: Byte; var ThousandSeparator: Char; var DecimalSeparator: Char; var CurrencyDecimals: Byte; var DateSeparator: Char; var ShortDateFormat: string; var LongDateFormat: string; var TimeSeparator: Char; var TimeAMString: string; var TimePMString: string; var ShortTimeFormat: string; var LongTimeFormat: string;var ShortMonthNames: array[1..12] of string; var LongMonthNames: array[1..12] of string; var ShortDayNames: array[1..7] of string; var LongDayNames: array[1..7] of string; var SysLocale: TSysLocale; var EraNames: array[1..7] of string; var EraYearOffsets: array[1..7] of Integer; var TwoDigitYearCenturyWindow: Word = 50;var ListSeparator: Char;
begin
SetLocaleInfo(LOCALE_SLONGDATE, LOCALE_SDATE, '-');
SetLocaleInfo(LOCALE_SLONGDATE, LOCALE_SSHORTDATE, 'yyyy-mm-dd');
end;
var
str: string;beginstr := RadioGroup1.Items.Strings[RadioGroup1.ItemIndex];if SetLocaleInfoa(LOCALE_SYSTEM_DEFAULT, LOCALE_SSHORTDATE , PChar(str)) thenbeginshowmessage('short OK!');thenSendMessageA(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0);end;end;为了方便测试我用了radioGroup,items 内容如下yy-d-md-yy-mm-d-yyyy-m-dyyyy-m-dyyyy-d-m 传进参数必须 null-terminate 字符串指针。我用 pchar ,而且字符串格式只能写成这样 'm-d'而不是'mm-dd'('yyyy'可以用),不然改不了另外delphi 函数 DateTostr,DateTimeTostr,都调用短格式。长格式很灵活。随便改.RadioGroup Items 如下yyy'年'dd'日'-mmd-yyyy-mmmm-dd-yyyyyyyy-mm-dd代码如下varstr: string;beginstr := RadioGroup2.Items.Strings[RadioGroup2.ItemIndex];if SetLocaleInfoa(LOCALE_SYSTEM_DEFAULT, LOCALE_SLONGDATE , PChar(str)) thenbeginshowmessage('Loan OK!');SendMessageA(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0);end;end;//
同步SQL服务器时间
procedure AnsyTime(const DatabaseName:string);
vartd: _SYSTEMTIME;ft: FILETIME;begin{ DONE -oKingron -cOther : 同步服务器时间 }with TQuery.Create(Self) dotryDatabaseName:=DatabaseName;SQL.Clear;SQL.Text := 'select td=getdate()';Open;DateTimeToSystemTime(FieldByName('td').AsDateTime, td);SystemTimeToFileTime(td,ft);LocalFileTimeToFileTime(ft,ft);FileTimeToSystemTime(ft,td);SetSystemTime(td);finallyFree;end;end;
如果我回答也是这些东西,如果不明白就没有办法了。你先考下去,自己再琢磨吧。
Delphi 为我们提供了一些全局变量,通过设置这些变量的值,可以在应用程序中指定时间格式。
var CurrencyString: string;var CurrencyFormat: Byte;
var NegCurrFormat: Byte;
var ThousandSeparator: Char;
var DecimalSeparator: Char;
var CurrencyDecimals: Byte;
var DateSeparator: Char;
var ShortDateFormat: string;
var LongDateFormat: string;
var TimeSeparator: Char;
var TimeAMString: string;
var TimePMString: string;
var ShortTimeFormat: string;
var LongTimeFormat: string;var ShortMonthNames: array[1..12] of string;
var LongMonthNames: array[1..12] of string;
var ShortDayNames: array[1..7] of string;
var LongDayNames: array[1..7] of string;
var SysLocale: TSysLocale;
var EraNames: array[1..7] of string;
var EraYearOffsets: array[1..7] of Integer;
var TwoDigitYearCenturyWindow: Word = 50;var ListSeparator: Char;