GetTimeZoneInformation
FileTimeToLocalFileTime
LocalFileTimeToFileTime
SystemTimeToTzSpecificLocalTime
Aber aufpassen, nicht alle Dateisysteme arbeiten gleich.
Einige Speichern Datumsangaben in LocalTile (z.B. ältere FAT), andere als UTC (z.B. NTFS).
Und dann arbeiten auch noch die Dateisystemtreiber anders.
Einige könnten UTC-Angaben in LocalTime umwandeln und andere machen das nicht.
Die Windows-Dateisystemtreiber machen sowas standardmäßig nicht.
z.B.
FindFirst *1 macht es, aber
FindFirstFile nicht.
1) Was natürlich nur funktioniert, wenn das Dateisystemals UTC speichert, ansonsten stimmt die Berechnung nicht.
PS: Wenn als LocalTime gespeichert wurde, dann gibt es gewaltige Probleme, genauso gibt es einige Problemchen, wenn UTC nach LocalTime umgerechnet und damit denn weitergerechnet wird.
Wie z.B. Zeitzonenwechsel, oder Sommerzeitumstellung, wo sich das selbe Datum anders auswirkt.