当系统设置日期格式为yyyy.MM.dd或yyyy/MM/dd时 当系统设置日期格式为yyyy.MM.dd或yyyy/MM/dd时strtodate('2011-01-01')出错怎么解决好呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 DateSeparator := '-';StrToDate('2011-01-01'); procedure SetDateTimeFormat(); var p:DWORD; begin SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SSHORTDATE,pchar('yyyy-MM-dd')); //设置短日期格式 SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SLONGDATE,pchar('yyyy''年''M''月''d''日'')); //设置长日期格式为 yyyy'年'M'月'd'日',“年月日”字符必须用单引号括起来。Delphi字符串里必须用两个单引号。 SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_STIMEFORMAT,pchar('H:mm:ss')); //设置时间格式,24小时制 SendMessageTimeOut(HWND_BROADCAST,WM_SETTINGCHANGE,0,0,SMTO_ABORTIFHUNG,10,p);//设置完成后必须调用,通知其他程序格式已经更改,否则即使是程序自身也不能使用新设置的格式 end; 呵呵,你可以利用TFormatSettings类呀.例如:procedure TForm1.btn1Click(Sender: TObject);var DateF:TFormatSettings; DateN:TDate;begin DateF.ShortDateFormat:='yyyy-mm-dd';//要转换的时间格式 DateF.DateSeparator:='-'; DateN:=StrToDate('2011-11-01',DateF);end; 关于DBGridEh鼠标点击的问题。 Delphi 7与数据库的连接问题 发布一款免费的GRID控件 求局域网同步游戏的最优化算法! 如何改变一个进程的窗口类名? 如何在windows2000中快速清除打印作业???来者有分 用QReport做报表问题 那个执行外部程序的函数 用上面的代码实现文件的copy,小的文件可以,但是大的就不可以 服务器启动时提示[dbnmpntw]ConnectionOpen(CreateFile())???? 求助!我想在指定的100个汉字里随机生成名字? 如何实现在dbgridth中,从第一行起,显示间隔N行的数据
DateSeparator := '-';
StrToDate('2011-01-01');
var
p:DWORD;
begin
SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SSHORTDATE,pchar('yyyy-MM-dd')); //设置短日期格式
SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SLONGDATE,pchar('yyyy''年''M''月''d''日'')); //设置长日期格式为 yyyy'年'M'月'd'日',“年月日”字符必须用单引号括起来。Delphi字符串里必须用两个单引号。
SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_STIMEFORMAT,pchar('H:mm:ss')); //设置时间格式,24小时制
SendMessageTimeOut(HWND_BROADCAST,WM_SETTINGCHANGE,0,0,SMTO_ABORTIFHUNG,10,p);//设置完成后必须调用,通知其他程序格式已经更改,否则即使是程序自身也不能使用新设置的格式
end;
var
DateF:TFormatSettings;
DateN:TDate;
begin
DateF.ShortDateFormat:='yyyy-mm-dd';//要转换的时间格式
DateF.DateSeparator:='-';
DateN:=StrToDate('2011-11-01',DateF);
end;