XE2 日期字符串转日期的函数

//可识别处理多种格式.


Function myStrToDateTime(sdate:String):TDateTime;

const
  dSeparator = '-';
var
  dtpos,tmpos:Integer;
begin
  result := 0;
  FormatSettings.DateSeparator := dSeparator;
  FormatSettings.TimeSeparator := ':';
  FormatSettings.ThousandSeparator := ',';
  FormatSettings.ShortDateFormat :='yyyy-mm-dd';
  FormatSettings.ShortTimeFormat :='hh:nn:ss';
  FormatSettings.LongDateFormat :='yyyy-mm-dd';
  FormatSettings.LongTimeFormat :='hh:nn:ss';
  sdate := ReplaceStr( sdate,'.' ,dSeparator);
  sdate := ReplaceStr( sdate,'/' ,dSeparator);
  sdate := ReplaceStr( sdate,'\' ,dSeparator);
  sdate := ReplaceStr( sdate,'年',dSeparator);
  sdate := ReplaceStr( sdate,'月',dSeparator);
  sdate := ReplaceStr( sdate,'日',dSeparator);
  dtpos := Pos(dSeparator,sdate);
  tmpos := Pos(':',sdate);
  //yyyymmdd字符串格式转日期.
  if (dtpos=0) and (tmpos=0) and (length(sdate)=8) then
  begin
    sdate := Copy(sdate,1,4)+ dSeparator + Copy(sdate,5,2)+ dSeparator + Copy(sdate,7,2);
  end;
  //yyyymmdd hh:nn:ss字符串格式日期.
  if (dtpos=0) and (tmpos>0) and (length(sdate)>13) then
  begin
    tmpos := Pos(' ',sdate);
    sdate := Copy(sdate,1,4)+ dSeparator + Copy(sdate,5,2)+ dSeparator + Copy(sdate,7,2) + Copy(sdate,tmpos,8);
  end;
  result := StrToDateTimeDef(sdate, 0, FormatSettings);

end;


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值