首页 > 系统相关 >让delphi程序不受WINDOWS日期格式的影响

让delphi程序不受WINDOWS日期格式的影响

时间:2024-08-15 18:18:48浏览次数:7  
标签:00 fs WINDOWS delphi yyyy 格式 dd

如果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;

如何解决?
procedure TdmCommonFun.SetSysDateFormat;
begin
// 设置WINDOWS系统的短日期的格式
SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SSHORTDATE, 'yyyy-MM-dd');

Application.UpdateFormatSettings := False;
// 设定程序本身所使用的日期时间格式
LongDateFormat := 'yyyy-MM-dd';
ShortDateFormat := 'yyyy-MM-dd';
LongTimeFormat := 'hh:nn:ss';
ShortTimeFormat := 'hh:nn:ss';
DateSeparator := '-';
TimeSeparator := ':';
end;
在程序初始化的时候执行上面的代码,不论WINDOWS的短日期格式怎样设置都不再影响
DELPHI程序。

 xe2以上版本,代码得改改:

procedure SetSysDateFormat;
var
  fs: TFormatSettings;
begin
  // 设置WINDOWS系统的短日期的格式
  SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SSHORTDATE, 'yyyy-MM-dd');
  Application.UpdateFormatSettings := False;
  // 设定程序本身所使用的日期时间格式
  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日期格式的影响 - delphi中间件 - 博客园 (cnblogs.com)

标签:00,fs,WINDOWS,delphi,yyyy,格式,dd
From: https://www.cnblogs.com/ynmsnc/p/18361532

相关文章

  • 在Delphi中使用正则表达式校验身份证号
    以下内容转自:https://my.oschina.net/ousinka/blog/3048132如何定义身份证号的正则表达式呢?1、省份编码[1-9]\d{5}2、年份(18|19|20)?\d{2}3、月份为1,3,5,7,8,10,12,天数范围为01-31,匹配MMDD的正则表达式为:(0[13578]|1[02])(0[1-9]|[12][0-9]|3[01])4、月份为4,6,9......
  • DELPHI四舍五入问题解决
    转自http://www.delphitop.com/html/jichu/153.html 感谢原作者。 这段时间在用DELPHI做一个财务系统时发现每一行的小计取了两位小数后与用SQL的ROUND查询出来的不一样,在程序中是用FormatFloat('0.00',ItemSum)函数来取值的,再用DXDBGRID网格显视合计,最终与SELECTSUM(ROUND(......
  • 一个xls格式excel 第9列的下拉框的默认值是“是”和“否”,讲帮我使用apache poi,从第5
    importorg.apache.poi.hssf.usermodel.HSSFDataValidation;importorg.apache.poi.hssf.usermodel.HSSFSheet;importorg.apache.poi.hssf.usermodel.HSSFWorkbook;importorg.apache.poi.ss.usermodel.DataValidation;importorg.apache.poi.ss.usermodel.DataValidatio......
  • Delphi提高开发效率之GExperts专家的使用说明
    GExperts是一组通过扩展集成开发环境(IDE)来提高Delphi和C++Builer程序员工作效率的工具。是一款开源的IDE扩展专家,由于去外网下载GExperts非常的麻烦,这里直接提供了Delphi7和Delphi11.1下的GExperts安装包,并连带最新源码一起打包,方便大家使用学习。下面直接看他具有哪些功能,留下实......
  • 让你的ubuntu像windows一样丝滑的小工具们
    本人使用的系统是Ubuntu20.04,如果是22.04会更加丝滑1.终端复制粘贴Ubuntu默认的复制粘贴是Ctrl+Shift+C,而我习惯了Ctrl+C,同时windows的终端是支持鼠标右键复制粘贴的,非常方便。对于后者,鼠标右键单击复制/粘贴,在Ubuntu更新版本的终端中已经内置了,但是20.04还没有这个功能,想用......
  • 在nginx的访问日志中输出响应时间(json格式)
    log_formatjsonescape=json'{''"time":"$time_iso8601",''"host":"$remote_addr",''"method......
  • systemverilog打印格式
    No占位符意义1%d或%D以十进制的形式输出2%o或%O以八进制的形式输出3%b或%B以二进制的形式输出4%h或%H以十六进制的形式输出,打印的字母小写或者大写5%x或%X以十六进制的形式输出6%c或%C以ASCII码字符的形式输出7%s或%S以字符串的形式输出......
  • Windows通过dynv6提供免费的IPv6动态域名解析(DDNS)服务(注册服务的方式运行)
    Dynv6IPv6Updater项目简介特性使用方法环境依赖运行脚本参数说明示例日志输出Windows服务注册步骤1:下载并安装NSSM步骤2:准备Python环境和脚本步骤3:使用NSSM注册服务步骤4:启动服务并验证步骤5:设置日志记录(可选)步骤6:重启系统并验证附:以下为帮......
  • Windows11 微软Microsoft官方制作系统U盘方法,系统安装最详细教程
    准备一个8G容量以上的U盘制作系统盘注意,在制作系统盘时会格式化U盘,所以最好准备个空U盘,请做好备份!防止资料丢失。因为做系统盘要清空原有U盘的所有数据。制作系统盘windows系统一般建议安装最新版本,如果习惯使用win10可以安装win10版本,如果是12代之后的英特尔CPU最好安装win11,对......
  • Windows11 微软Microsoft官方系统安装、重装操作教程
    01系统镜像下载推荐到微软中国官网下载Windows正版系统,或者可以到第三方的系统镜像下载站获取下载链接,使用迅雷工具进行下载,我这里推荐两个下载站,如果不想弄迅雷下载那么麻烦,也可以用我的123盘分享下载还是那句话,非常不建议下载各种奇葩定制系统,大部分系统中有夹带私货,安全性和......