Thursday, November 09, 2006

Převod času v milisekundách na TDateTime

Možná vám bude tento tip připadat jako zbytečný, ale mnozí začátečníci se často potýkají s problémem vzájemných převodů různých časových jednotek, a jelikož je této oblasti v Delphi věnován poměrně velký počet funkcí, snadno se v nich může člověk ztratit. Pro náš příklad jsem vybral velice častý případ, kdy údaj v milisekundách potřebujeme zobrazit jako běžný čas převedením na typ TDateTime, se kterým se pak již pracuje poněkud pohodlněji než s milisekundami. V naší ukázce si necháme zobrazit v tomto standardním tvaru čas od startu systému.
procedure TForm1.Button1Click(Sender: TObject);
var DT : TDAteTime;
begin
DT := TimeStampToDateTime(MSecsToTimeStamp(GetTickCount));
ShowMessage(FormatDateTime('d hh:nn:ss', DT));
end;
Místo funkce GetTickCount můžete samozřejmě doplnit požadovaný čas v milisekundách, který bude poté převeden.