Zitat von
S2B:
Zitat von
shmia:
Also SysUtils.Now liefert die die aktuelle lokale Systemzeit.
Wenn dir bekannt ist, dass wir in Deutschland gerade bei UTC+2 sind, dann musst du 2 Stunden
abziehen um zur UTC zu kommen:
Aber dann geht das ja nicht, wenn das Programm auf einem Rechner läuft, auf dem Englische Systemzeit eingestellt ist, oder?
Klar die 2 Stunden waren ja nur als Beispiel gedacht.
Noch geschickter geht es vielleicht so:
Delphi-Quellcode:
// liefert die aktuelle Systemzeit in Coordinated Universal Time (UTC)
function NowUTC: TDateTime;
var
SystemTime: TSystemTime;
begin
GetSystemTime(SystemTime);
with SystemTime do
Result := EncodeDate(wYear, wMonth, wDay) +
EncodeTime(wHour, wMinute, wSecond, wMilliseconds);
end;
Dann ist UTC+10 ganz leicht zu berechnen mit:
Delphi-Quellcode:
function NowUTC_TZ(timezone:integer):TDateTime;
begin
Assert((timezone >= 12) and (timezone <= 12), 'Invalid Timezone');
Result := NowUTC+ timezone*(1.0/24.0);
end;