1、我要将一个以毫秒位单位的整数转成时间格式,如1000毫秒转成00:00:01:000
好像vb中有个ToTime函数可以,Delphi中有这样的函数么?如果要写几段代码,就不用回答了,我已经写了一个函数暂时转换用,希望找到更好的方法。
2、怎么完成时间的运算,比如am 08:30:00:000 加上 00:45:00:00等于
am 09:15:00:000?

解决方案 »

  1.   

    FormatDateTime 函数或者可以帮到你。
    DELTHI中的时间数据类型(TDateTime, TDate, TTime 等)都是浮点数,可以直接进行加减运算的。运算完毕后,可以用FormatDateTime,DateToStr等函数完成格式转换,转成你想要的特定格式字符串。
      

  2.   

    按照你的要求,应该先自己把以毫秒位单位的整数转成时分秒,然后使用
    函数function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime;
    然后再使用函数function FormatDateTime(const Format: string; DateTime: TDateTime): string;使用格式请查看Delphi自带的帮助,里面
    有很详细的解释,很简单。
      

  3.   

    是很容易
    用FORMAT
    你也可以自己做个涵数
      

  4.   

    到底问题1有没有直接可用的函数
    2,如果用EncodeTime加减时间会有进位的问题么?
      

  5.   

    strtodatetime()
    函数
    procedure TForm1.Button1Click(Sender: TObject);var
      ADateAndTime: TDateTime;
    begin
      ADateAndTime := StrToDateTime(Edit1.Text);
      Table1.FieldByName('TimeStamp').AsDateTime := ADateAndTime;
    end;
      

  6.   

    1:
    var
      ATime:TTime;
    begin
      ATime:=1000;
      ShowMessage(TimeToStr(ATime));
    end;
    2:
    var
      TmpTime,ATime:TTime;
    begin
      TmpTime:=StrToTime('00:45:00:00');
      ATime:=StrToTime('08:30:00:000');
      ATime:=ATime+TmpTime;
      ShowMessage(TimeToStr(ATime));
    end;
    //try this!
      

  7.   

    将楼上的做了一点改动
    2
    var
      TmpTime,ATime:TTime;
    begin
      TmpTime:=StrToTime('00:45:00');
      ATime:=StrToTime('08:30:00');
      ATime:=ATime+TmpTime;
      ShowMessage(TimeToStr(ATime));
    end;
      

  8.   

    我觉得用Format完全可以解决你的问题!
      

  9.   

    我看 我来晚了
    但我告诉你学习 delphi 
    多多看看 它自身的 帮助很有用的!