各位大虾;
      好了,兄弟碰到了一个问题关于时间格式的问题,,是这样的,我想实现的目的是:
   想在在文本edit1输入一个日期格式用为"yyyy-mm-dd";如果是这样的输入能成功!
如果格式不是"yyyy-mm-dd"为不正确显示“应输入正确的格式为“yyyy-mm-dd”
看一下我写的程序,我估计可能是日期格式的问题;  先谢谢!!
procedure Tf_xzyg.Edit1Enter(Sender: TObject);
begin
  if trim(edit1.Text)<>formatdatatime("yyyy-mm-dd") then    //可能是这句有问题了,
     begin  showmessage('输入的格式是真确的');
     end
  else
     begin
      shomessage('你输入的格式不正确,请输入"yyyy-mm-dd"');
      end;
end;
end.

解决方案 »

  1.   

    if trim(edit1.Text)<>formatdatatime("yyyy-mm-dd", StrToDate(trim(edit1.Text))) then
      

  2.   

    procedure Tf_xzyg.Edit1Enter(Sender: TObject);
    begin
    try  
     strtodate(edit1.Text);
    showmessage('输入的格式是真确的');
    except
    shomessage('你输入的格式不正确,请输入"yyyy-mm-dd"');
    end;    
    end.
      

  3.   

    function isdatestr(datestr:string):boolean
    var
    tmpdatetime:Tdatetime;
    begin
    result:=true;
    try
    tmpdatetime:=StrToDate(datestr);
    except
    result:=false;
    end;
    procedure Tf_xzyg.Edit1Enter(Sender: TObject);
    begin
      if isdatestr(trim(edit1.Text)) then
      
          showmessage('输入的格式是真确的')
         
      else
          shomessage('你输入的格式不正确,请输入"yyyy-mm-dd"');
    end;
      

  4.   

    procedure Tf_xzyg.Edit1Enter(Sender: TObject);
    begin
    if trim(edit1.Text)<>formatdatetime('yyyy-mm-dd', StrToDate(trim(edit1.Text))) then
      begin  showmessage('输入的格式是真确的');
         end
      else
         begin
          showmessage('你输入的格式不正确,请输入 yyyy-mm-dd');
          end;
    end;
    这个好象不能实现了,我试了 请在帮我看一下了
      

  5.   

    楼主我不知道你是看不懂代码还是懒得可以如果你看明白了你就知道怎么改了,我前面的代码随手写的if trim(edit1.Text)=formatdatetime('yyyy-mm-dd', StrToDate(trim(edit1.Text))) then把不等号改成等号就行了
      

  6.   

    if trim(edit1.Text)<>formatdatatime("yyyy-mm-dd", StrToDate(trim(edit1.Text))) then
    formatdatatime还需要一个参数
      

  7.   

    用MaskEdit吧,什么都不用写。
      

  8.   

    procedure Tf_xzyg.Edit1Exit(Sender: TObject);
    begin
    if trim(edit1.Text)=formatdatetime('yyyy-mm-dd', StrToDate(trim(edit1.Text))) then
      begin  showmessage('输入的格式是真确的');
         end
      else
         begin
          showmessage('你输入的格式不正确,请输入 yyyy-mm-dd');
          end;
    end;
    这个好象不能实现了,我试了 请在帮我看一下了
    我是这样写的,因为我刚写程序的时候输入一个错误的格式,先有错,然后弹出来一个信息,
    你不相信的话,就帮我试试
      

  9.   

    procedure Tf_xzyg.Edit1Exit(Sender: TObject);
    begin
    if trim(edit1.Text)=formatdatetime(''yyyy''-''mm''-''dd', StrToDate(trim(edit1.Text))) then
      begin  showmessage('输入的格式是真确的');
         end
      else
         begin
          showmessage('你输入的格式不正确,请输入 yyyy-mm-dd');
          end;
    end;
      

  10.   

    procedure Tf_xzyg.Edit1Enter(Sender: TObject);
    begin
      if trim(edit1.Text)<>(formatdatatime('yyyy',StrToDate(trim(edit1.Text)))+'-'
      +formatdatatime('mm',StrToDate(trim(edit1.Text))) +'-'
      +formatdatatime('dd',StrToDate(trim(edit1.Text))) )  then    
         begin  showmessage('输入的格式是真确的');
         end
      else
         begin
          shomessage('你输入的格式不正确,请输入"yyyy-mm-dd"');
          end;
    end;
      

  11.   

    你一定没有认真看过Delphi的基础,基础的东西都不知道,
    网上很多人给的代码,并不是最终的代码,通常是一个思路,你应该从中得到启发,按照这个思路去完善它,这么个简单的问题你居然拖了这么多天,停滞不前。下面的代码在IDE下依然会有错误提示,脱离了IDE就不会弹出错误提示了procedure Tf_xzyg.Edit1Exit(Sender: TObject);
    var
      bValid: boolean;
    begin
      bValid:= false;
    try
    if trim(edit1.Text)=formatdatetime('yyyy-mm-dd', StrToDate(trim(edit1.Text))) then
      bValid:= true
    except
    end;if bValid then
      showmessage('输入的格式是真确的')
    else
      showmessage('你输入的格式不正确,请输入 yyyy-mm-dd');end;上面的代码我没调试,你自己看