delphi中不认识'20020609' 这种格式,但输出时可以是任何格式,
用formdatatime就可以了。如
Showmessage(FormatDateTime('"The meeting is on " dddd, mmmm d, yyyy, " at " hh:mm AM/PM', Now + 0.125));

解决方案 »

  1.   

    但是aa是string格式,不是DateTime,无法应用FormatDateTime.
      

  2.   

    To: WQmeng(*耶*)因为我不知道本机的时间格式是什么。
    有可能是yyyy-mm-dd,也有可能是yyyy年mm月dd日。不知各位还有什么好方法?
      

  3.   

    只能设定全局变量DateSeparator和ShortDateFormat来影响StrtoDate的转换,DateSeparator决定日期分隔符,ShortDateFormat决定日期格式YMD,MDY或者DMY
      

  4.   

    用now去系统时间得到的是TDatetime类型的数据,它可以formdatatime转换成字符串,用TDatetime比较比用字符串要好
    字符串要转换成TDatetime类型可以用StrToDateTime
      

  5.   

    To:niu_zai(牛仔)DateSeparator和ShortDateFormat是系统变量吗?
    系统变量是什么??只有改变系统日期格式这一种方法吗?
    能不能在不改变系统日期格式的前提下完成转换?
    谢谢各位的参与,Up者也给分。
      

  6.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      aa:String;
      bb:tdate;
    begin
      ShortDateFormat:='yyyy-mm-dd';
      DateSeparator:='-';
      aa:='2002-06-09';
      bb:=strtodate(aa);//if aa='20020609' then 报错
    end;
      

  7.   

    如果改变了日期格式,那么DateTimePicker中的数据也会变成2002-06-09,但我需要将DateTimePicker中的数据变为2002年6月9日。
    不会是再设置回原来的日期格式吧!
      

  8.   

    如果改变了日期格式,那么DateTimePicker中的数据也会变成2002-06-09,但我需要将DateTimePicker中的数据变为2002年6月9日。
    不会是再设置回原来的日期格式吧!
      

  9.   

    procedure TForm1.Button1Click(Sender: TObject);
      var
        aa:String;
        bb:tdate;
      Function FormatStringDate(S: String): String;
      begin
           FormatStringDate:=Copy(S,1,4)+'-'+Copy(S,5,2)+'-'+Copy(S,7,2);
      end;
    begin
      ShortDateFormat:='yyyy-mm-dd';
      DateSeparator:='-';
      aa:='20020609';
      bb:=strtodate(FormatStringDate(aa));
    end;
      

  10.   

    procedure TForm1.Button1Click(Sender: TObject);
      var
        aa:String;
        bb:tdate;
      Function FormatStringDate(S: String): String;
      begin
           FormatStringDate:=Copy(S,1,4)+'-'+Copy(S,5,2)+'-'+Copy(S,7,2);
      end;
    begin
      ShortDateFormat:='yyyy-mm-dd';
      DateSeparator:='-';
      aa:='20020609';
      bb:=strtodate(FormatStringDate(aa));
    end;
      

  11.   

    DateTimePicker 如果是delphi6.0  的话可以有一个Format属性 设置为yyyy'年'MM'月'dd'日'如果是5.0 的话我可以再告诉你,最好把你的要求详细写出。我可以给你一些详细函数。
    DateTimePicker.datetime 转化为字符最好用 formatdatetime函数什么样的要求都可以满足
    formatdatetime('yyyy''年''MM''月'dd''日''',DateTimePicker.datetime)
    转化为中文格式
      

  12.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      aa: String;
      bb: TDateTime;  Function GetNumber(S: String;Start,Len: Integer): integer;
      var
        t: String;
        i: Integer;
      begin
        i:=0;
        t:='';
        while (i<len) and (S[Start + i] in ['0'..'9']) do
        begin
          t := t + S[Start + i];
          inc(i);
        end;  
        Result := StrToInt(t);
      end;begin
      aa:='20020609';
      bb:=EncodeDate(GetNumber(aa,1,4),GetNumber(aa,5,2),GetNumber(aa,7,2));
    end;  
      

  13.   

    procedure TForm1.Button1Click(Sender: TObject);
      var
        aa:String;
        bb:tdate;
      Function FormatStringDate(S: String): String;
      begin
           FormatStringDate:=Copy(S,1,4)+'-'+Copy(S,5,2)+'-'+Copy(S,7,2);
      end;
    begin
      ShortDateFormat:='yyyy-mm-dd';
      DateSeparator:='-';
      aa:='20020609';
      bb:=strtodate(FormatStringDate(aa));
    end;
    这个很好,我试了