办公室里一台机器的区域和语言选项是“中文(台湾)”,在这台机器上用下面语句可以把字符串变成时间:
d:=StrToDate('2005/7/23');
但是另一台机器的区域和语言选项是“英文(美国)”,程序运行到上面的语句就报错了。我想达到的目的是不管机器的区域和语言选项是什么,都要把'2005/7/23'这种格式的字符串变成时间。看了一下Delphi的帮助文件StrToDate函数还有一个TFormatSettings类型的参数,估计用它应该可以达到目的,但找了半天也没找到使用TFormatSettings的例子,小弟希望得到各位的帮助。
d:=StrToDate('2005/7/23');
但是另一台机器的区域和语言选项是“英文(美国)”,程序运行到上面的语句就报错了。我想达到的目的是不管机器的区域和语言选项是什么,都要把'2005/7/23'这种格式的字符串变成时间。看了一下Delphi的帮助文件StrToDate函数还有一个TFormatSettings类型的参数,估计用它应该可以达到目的,但找了半天也没找到使用TFormatSettings的例子,小弟希望得到各位的帮助。
解决方案 »
- adoquery open 查询oracle数据库 包含case when 异常
- DBChart/Chart柱图顶端显示的不是数值而是柱图的所对应的标签值,如何解决?
- 怎样控制StringGrid某一个单元格的背景色?
- 如何使webbrowser控件在浏览编辑网页时能够响应回车(return)!
- 怎样将已开发的delphi的简体中文程序转译成繁体中文?
- 请问大虾,Delphi中取余函数是什么,这类函数在那个单元中?
- 我靠,这么简单的问题,大家都来看看吧。
- 求ModelMaker 10 下载和对应可用的cr
- 如此简单的一个Dll还出错
- 急!!!如何实现数据的统计??(用query中的sum()该如何实现??)急!!!
- 使用TBatchMove控件批量复制数据
- 问一个关于delphi7写的webservice的端口问题!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
function MyStrToDate(S: string): TDateTime;
var
ys, ms, ds: string;
yw, mw, dw: Word;
i: Integer;
begin
Result := 0;
if S = '' then Exit;
i := Pos('/', S);
ys := Copy(S, 1, i - 1);
S := Copy(S, i + 1, length(S));
i := Pos('/', S);
ms := Copy(S, 1, i - 1);
S := Copy(S, i + 1, length(S));
ds := S;
try
yw := StrToInt(ys);
mw := StrToInt(ms);
dw := StrToInt(ds);
Result := EncodeDate(yw, mw, dw);
except
Result := 0;
end;
end;
var
s,s1 :string;
slst : TStringList;
i: integer;
y,m,d:word;
begin
s:='2005/5/6';
slst := TStringList.Create;
ExtractStrings(['/'],[' '],pchar(s),slst); y:=strtoint(slst[0]);
m:=strtoint(slst[1]);
d:=strtoint(slst[2]);
showmessage(datetostr(EncodeDate(y,m,d)));end;
ShortDateFormat := 'yyyy/mm/dd'; //输出格式 这里的‘/’如果改成‘-’,下面showmessage就变成‘-’
Date := StrToDate('2005/02/01'); //转换
ShowMessage(DateToStr(Date)); 看到'2005/02/01'你自己试试,不然不保险,实际上就是DateSeparator不同系统可能不一样
另外想问一下,TStringList类型的变量不过不free会不会自动free?
看见 qizhanfeng(glacier)的帖子里用到了TStringList,突然想到了这个问题。