eg: str := '1998-9-8';
 看有什么函数可以判断是否为日期类型。象vb里面有IsDate函数,,
delphi 就不知道了。 

解决方案 »

  1.   

    查位:begin
      //如果字符从第0位开始
      result:=false;
      if (str[4]='-') and (str[7]='-') then result:=true;
      
    end;
      

  2.   

    function IsDate(str:String):boolean;
       begin
         try
           StrToDateTime(str);
           Result := True;
         except
           Result := False;
         end;
       end;
      

  3.   

    有这么个StrToDateTime函数
    返回值是boolean,详细的去看帮助吧!
      

  4.   

    to  ObjectBuilder(阿法)  :
     经过测试 它不能捕获 错误时间,即输入错误时间,程序报错,并非返回一个 false值只能捕获正确时间,时间格式对的话就返回True;
      

  5.   

    if StrToDateTimeDef(sText,1)<2 then 
      ShowMessage('不是一个时间')
    else
      ShowMessage('是一个时间');
      

  6.   

    firstshine 黑里透红  的办法最好,推荐使用
      

  7.   

    刚才偶又看了一下帮助,也许这个更有用
     function  TryStrToDateTime(const S: string; out Value: TDateTime): Boolean; $[SysUtils.pas用法:///////Begin TryStrToDateTime
    procedure TForm1.Button1Click(Sender: TObject);
    var
    vDateTime: TDateTime;
    begin
    CheckBox1.Checked := TryStrToDateTime(Edit1.Text, vDateTime);
    Edit2.Text := DateTimeToStr(vDateTime);
    end;
    ///////End TryStrToDateTime这个的作用更明显了,字符非日期时间表达时返回False并且Value将输出为0 .
      

  8.   

    to firstshine(黑里透红)  :)基本上正确.但为什么我用 1999-99-99 的时间的话,它说也正确,,
        难道 那个函数只是对 格式进行了判断,没有对数据进行判断么.?
      

  9.   

    to  netqh(有了快感你就喊) :) 经过测试,你可以解决上面的那个缺陷.
    谢谢大家了.结贴了.