在程序中使用如下语句:
var
  t: TTime;
begin
  t := Time;
  edit1.text := DateTimeToStr(t);
end;
为什么edit1中显示的内容是:1899-12-30 23:51:54
TTime和TDateTime是等同的吧?
而使用如下语句:
var
  t: TTime;
  hour, min, sec, milsec: word;
begin
  DecodeTime(t,hour,min,sec,milsec);
  edit1.text := IntToStr(hour)+':'+IntToStr(min);
end;
则可以获得想要的时间格式。

解决方案 »

  1.   

    那为什么用edit1.text := DateTimeToStr(t)会得到1899-12-30 23:51:54这样的结果呢?前面的1899-12-30是怎么来的?
      

  2.   

    t 里没有日期datetimetostr() 他无法确定日期就自动给你加上 1899-12-30了
      

  3.   

    TTime,TDate,TDateTime这三种类型一样吗?各用来存放什么类型的数据?
      

  4.   

    不懂英语,本人大学英语1级没过,真不好意思。
    在Delphi中,应该是TTime = type TDateTime和TDate = type TDateTime吧?
      

  5.   

    不要吵TimeToStr(Time)DateToStr(Date)DateTimeToStr(DateTime)
      

  6.   

    var
      strTmp:str;
    begin  strTmp:=FormatDateTime('YYYY年MM月DD日 HH点nn分',Now));
      ShowMessage(strTmp);
    end;
    具体看一看delphi的帮助吧,几乎你想转换成任何格式都可以做到。
      

  7.   

    //设置日期显示格式为 yyyy-mm-dd
    procedure TfrmEmployeeMain.FormShow(Sender: TObject);
    begin
       DateSeparator :='-';
       ShortDateFormat :='yyyy-mm-dd';
       LongDateFormat := 'YYYY-MM-DD HH:MM:SS';
    end;