如果windows系統的短日期格式為「yyyy/m/d」,執行下面的**會報錯:2013-01-29 00:00:00不是合法的日期
如何解決?procedure tfrmquerysale.formshow(sender: tobject);
var sdate: string;
begin
inherited;
// 預設查當天的銷售資料
sdate := formatdatetime('yyyy-mm-dd', now);
datetimepicker1.datetime := strtodatetime(sdate + ' 00:00:00');
datetimepicker2.datetime := strtodatetime(sdate + ' 23:59:59');
find(trim(edtbillid.text), datetimepicker1.datetime, datetimepicker2.datetime);
edtbillid.setfocus;
end;
在程式初始化的時候執行上面的**,不論windows的短日期格式怎樣設定都不再影響delphi程式。procedure tdmcommonfun.setsysdateformat;
begin
// 設定windows系統的短日期的格式
setlocaleinfo(locale_system_default, locale_sshortdate, 'yyyy-mm-dd');
// 設定程式本身所使用的日期時間格式
longdateformat := 'yyyy-mm-dd';
shortdateformat := 'yyyy-mm-dd';
longtimeformat := 'hh:nn:ss';
shorttimeformat := 'hh:nn:ss';
dateseparator := '-';
timeseparator := ':';
end;
xe2以上版本,**得改改:
procedure setsysdateformat;
var
fs: tformatsettings;
begin
// 設定windows系統的短日期的格式
setlocaleinfo(locale_system_default, locale_sshortdate, 'yyyy-mm-dd');
// 設定程式本身所使用的日期時間格式
fs.longdateformat := 'yyyy-mm-dd';
fs.shortdateformat := 'yyyy-mm-dd';
fs.longtimeformat := 'hh:nn:ss';
fs.shorttimeformat := 'hh:nn:ss';
fs.dateseparator := '-';
fs.timeseparator := ':';
end;
讓delphi程式不受WINDOWS日期格式的影響
如果windows系統的短日期格式為 yyyy m d 執行下面的 會報錯 2013 01 29 00 00 00不是合法的日期 procedure tfrmquerysale.formshow sender tobject varsdate string begin inherited 預設查當天...
讓delphi程式不受WINDOWS日期格式的影響
如果windows系統的短日期格式為 yyyy m d 執行下面的 會報錯 2013 01 29 00 00 00不是合法的日期 procedure tfrmquerysale.formshow sender tobject varsdate string begin inherited 預設查當天...
讓delphi程式不受WINDOWS日期格式的影響
如果windows系統的短日期格式為 yyyy m d 執行下面的 會報錯 2013 01 29 00 00 00不是合法的日期 procedure tfrmquerysale.formshow sender tobject varsdate string begin inherited 預設查當天...