我觉得最简单的方法,是对这个字符串进行一下预处理。例:
s := '23/jan/2002';
s := StringReplace(s,'Jan','01',[rfReplaceAll]);
s := StringReplace(s,'Feb','02',[rfReplaceAll]);
.....
s := StringReplace(s,'Dec','12',[rfReplaceAll]);
//这一段可以写一函数
ShortDateFormat := 'yyyy-mm-dd';
d := StrToDate(s);
这是Date,对于Time,通过设置ShortTimeFormat应该直接可以转换。
(Date之所以不能转换,是因StrTodate所要求的Str是要包含三个数字的。Delphi
能显示23-Jan-2002这种格式,但不能转换这种格式)