我想将一个字符串'2003.01.05'转成日期型应该怎么做?
用STRTODATE不行

解决方案 »

  1.   

    AnsiString a = '2003.01.05';
    thedate = StrToDate(a.substring(1,4)+'-'+a.substring(6,2)+'-'+a.substring(9,2));
      

  2.   

    StrToDate 函数 将字符串转换为日期格式 
    StrToDateTime 函数 将字符串转换为日期/时间格式 
      

  3.   

    有的日期是'03.05.1'有的是'2003.05.01'这样来处理:var
       str:string;
    begin
       str:='2003.1.1';
       str[pos('.',str)]:='-';
       str[pos('.',str)]:='-';
       
       StrToDate .....
    end;
      

  4.   

    var
      s,s1:string;
      i,j:integer;
      dt:TDateTime;
    begin
      s:='03.03.01';
      i:=length(s);
      for j:=0 to i-1 do
      begin
        if s[j]='.' then
          s[j]:='-';
      end;
      dt:=strtodate(s);
      s1:=formatdatetime('yyyy-mm-dd',dt);
      showmessage(s1);
      

  5.   

    看我的
    EncodeDate(StrToint(MidStr(maskedit,1,4)),StrToint(MidStr(maskedit,6,2)),StrToint(MidStr(maskedit,9,2)))
      

  6.   

    StrToDate(AnsiReplaceStr('2003.3.1','.','-'))
      

  7.   

    好,搞定,ihihonline(小小->记好啊.有空多来灌水) 的方法最好,晚点结贴
      

  8.   

    如果你直接调用StrToDate的话,这个String的格式可能与Windows的区域选项/日期时间格式有关系