Es gibt die lokale Zeit (z.B.: GMT+1) und die Systemzeit (Coordinated Universal Time=UTC).
Die Funktion Now sieht so aus:
Delphi-Quellcode:
function Now: TDateTime;
var
SystemTime: TSystemTime;
begin
GetLocalTime(SystemTime); // <===
with SystemTime do
Result := EncodeDate(wYear, wMonth, wDay) +
EncodeTime(wHour, wMinute, wSecond, wMilliseconds);
end;
Würde man statt Get
LocalTime die Funktion Get
SystemTime aufrufen, würde man die Zeit in UTC
bekommen.
Delphi-Quellcode:
function NowUTC: TDateTime;
var
SystemTime: TSystemTime;
begin
GetSystemTime(SystemTime); // <===
with SystemTime do
Result := EncodeDate(wYear, wMonth, wDay) +
EncodeTime(wHour, wMinute, wSecond, wMilliseconds);
end;
2 Rechner (einer in Deutschland, einer in China) müssen das gleiche Ergebnis von NowUTC ekommen, wenn die Funktion gleichzeitig aufgerufen wird. (Uhrzeitfehler & Relativitättheorie mal unberücksichtigt)
Der Unterschied zwischen lokaler Zeit und UTC bekommt man mit:
GetTimeZoneInformation