让delphi程序不受WINDOWS日期格式的影响
生活随笔
收集整理的這篇文章主要介紹了
让delphi程序不受WINDOWS日期格式的影响
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
讓delphi程序不受WINDOWS日期格式的影響如果WINDOWS系統(tǒng)的短日期格式為“yyyy/m/d”,執(zhí)行下面的代碼會報錯:2013-01-29 00:00:00不是合法的日期 procedure TFrmQuerySale.FormShow(Sender: TObject); var sDate: string; begin inherited; // 默認查當天的銷售數(shù)據(jù) 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;如何解決? procedure TdmCommonFun.SetSysDateFormat; begin // 設(shè)置WINDOWS系統(tǒng)的短日期的格式 SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SSHORTDATE, 'yyyy-MM-dd');Application.UpdateFormatSettings := False; // 設(shè)定程序本身所使用的日期時間格式 LongDateFormat := 'yyyy-MM-dd'; ShortDateFormat := 'yyyy-MM-dd'; LongTimeFormat := 'hh:nn:ss'; ShortTimeFormat := 'hh:nn:ss'; DateSeparator := '-'; TimeSeparator := ':'; end; 在程序初始化的時候執(zhí)行上面的代碼,不論WINDOWS的短日期格式怎樣設(shè)置都不再影響 DELPHI程序。xe2以上版本,代碼得改改:procedure SetSysDateFormat; varfs: TFormatSettings; begin// 設(shè)置WINDOWS系統(tǒng)的短日期的格式SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SSHORTDATE, 'yyyy-MM-dd');Application.UpdateFormatSettings := False;// 設(shè)定程序本身所使用的日期時間格式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 各個版本的系統(tǒng)時間格式設(shè)置函數(shù) // ---------------------------------------------------------------- procedure SetSysDateFormat; begin// 設(shè)置WINDOWS系統(tǒng)的短日期的格式SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SSHORTDATE, 'yyyy-MM-dd');Application.UpdateFormatSettings := False;// 設(shè)定程序本身所使用的日期時間格式{$IF CompilerVersion >= 21.0}with FormatSettings do{$ELSE}beginLongDateFormat := 'yyyy-MM-dd';ShortDateFormat := 'yyyy-MM-dd';LongTimeFormat := 'hh:nn:ss';ShortTimeFormat := 'hh:nn:ss';DateSeparator := '-';timeSeparator := ':';end;{$IFEND} end;轉(zhuǎn)載于:https://my.oschina.net/u/582827/blog/1624816
總結(jié)
以上是生活随笔為你收集整理的让delphi程序不受WINDOWS日期格式的影响的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: django用户认证系统——注册3
- 下一篇: 从Java到Kotlin(五)