Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#10

AW: Irritationen bei SetLastWriteTime/ GetLastWriteTime

  Alt 25. Mär 2020, 12:08
Wiedermal nur geraten:

StrToDateTime('01.05.2020 10:00') ist die Ortszeit, entsprechend der Windowseinstellungen auf dem Rechner.

Steht dort in der Zeitzone Berlin, dann ist UTC für Greenwich eine Stunde früher. Es wird für UTC also lokale Zeit minus Differenz zwischen Greenwich und Berlin genommen.

Steile Behauptung:

Änderst Du die Zeitzone Deines Rechners auf Tokio, so wird die Differenz 10 Stunden betragen. In Tokio ist es neun Stunden später als bei uns, bis Greenwich macht das dann -10 Stunden aus.
Also sowas:
Delphi-Quellcode:
TFile.SetLastWriteTimeUTC('test.txt', StrToDateTime('01.05.2020 10:00'));
TFile.GetLastWriteTimeUTC('test.txt'))); // liefert 01.05.2020 00:00
Änderst Du die Zeitzone Deines Rechners auf Seattle, wird die Differenz +8 Stunden betragen.
Also sowas:
Delphi-Quellcode:
TFile.SetLastWriteTimeUTC('test.txt', StrToDateTime('01.05.2020 10:00'));
TFile.GetLastWriteTimeUTC('test.txt'))); // liefert 01.05.2020 18:00
In Tokio ist UTC 10 Stunden weniger als die Ortszeit von Tokio, in Seattle ist UTC 8 Stunden mehr als die Ortszeit von Seattle.
  Mit Zitat antworten Zitat