如何用函数实现日期格式之间的转换(50分)

  • 主题发起人 主题发起人 骷髅头
  • 开始时间 开始时间

骷髅头

Unregistered / Unconfirmed
GUEST, unregistred user!
请问 如何用函数实现日期格式之间的转换???
用最简单方法实现
例如2006-12-31、 2006/12/31 、2006.12.31三者之间日期格式的相互转换
用FormatDateTime函数是无法实现它们之间的格式转换
望高手给予解答,谢谢
 
StringReplace(DateStr, '-', '.', [rfReplaceAll])
 
FormatDateTime可以吧,formatdatetime('yyyy/mm/dd',date)
 
哦,晕,这个我咋没有想到呢,呵呵,谢谢
还有没有别的好方法有吗,快啊,我要散分了!!!!
 
to jxj0561, 这个不行,因为是它们三者之间的转换,用了会出错,提示无效的日期格式
 
copy(youdate,1,4)+copy(youdate,6,2)+copy(youdate,9,2)
全都转换为20061125型,呵呵
 
function GetDate(Date: string): TDate;
begin
Result := 0;
try
Result := TryEncode(StrToInt(Copy(Date, 1, 4)), StrToInt(Copy(Date, 6, 2)), StrToInt(Copy(Date, 9, 2)));
except
end;
end;

function TranDate(Date: string
Type: Integer): string;
var
tmpDate: TDate;
begin
tmpDate := GetDate(Date);
if tmpDate <> 0 then
case type of
1: Result := ForamtDate('yyyy-mm-dd', tmpDate);
2: Result := ForamtDate('yyyy/mm/dd', tmpDate);
3: Result := ForamtDate('yyyy.mm.dd', tmpDate);
end;
end;
 
帮你顶一下!
 
把时间转换成字符串做处理,读取字符串将里面的“-”,“/”,“,”进行转换也可以的
 
To jxj0561:
你说的方法不可以的。FormatDateTime('yyyy/mm/dd', Date)和FormatDateTime('yyyy-mm-dd', Date)都会返回以用户在区域设置中设置是日期分隔符作为分隔的日期形式。
如果在使用FormatDateTime之前,加上DateSeparator := '/';就可以让其显示正确的格式了。
 
ChrisMao是正解!又学了一招。
 
多人接受答案了。
 
后退
顶部