API SetFileTime. Falsche Datumsanzeige im Explorer?

19/04/2008 - 15:25 von Wolfgang Badura | Report spam
Hallo!

Beim Download mit einem eigenem Programm ist mir folgendes aufgefallen:
Die Url der Datei lautet http://www.zamg.ac.at/fix/klima/werte03-08.pdf.
Der HTTP-Header enthàlt betreffend das Erstellungsdatum
Last-Modified: Tue, 01 Apr 2008 12:04:24 GMT.

Der File wird zunàchst mit dem laufenden Datum, zB 14.04.2008 22:05
gespeichert.

Nun setze ich das Datum des Files F:\Daten\Wetter\Klimawerte_200803.pdf
mit der API-Funktion SetFileTime

hFile = OpenFile(zFilename, OFS, OF_READWRITE)
If hFile = 0 Then Exit Function ' File nicht gefunden
Retval = SetFileTime(hFile, FileDatum, FileDatum, FileDatum)
' Handle schließen
CloseHandle hFile

auf das Datum 01 Apr 2008 12:04:24.
Das funktioniert ja noch.
In der Variablen FileDatum steht, so meine Überprüfungen, die richtige
Uhrzeit 12:04.

Wenn ich nachher mit dem Explorer den File
F:\Daten\Wetter\Klimawerte_200803.pdf
ansehe, so fand ich vor der Umstellung auf die MESZ
01.04.2008 13:04, nach der Umstellung ,also auch heute, sogar 01.04.2008
14:04

Was soll der Quatsch!
Woher kommt das? Kann ich das abstellen? Wozu soll das gut sein?
Der File wurde eigentlich mit 01.04.2008 12:04 gespeichert!

Wenn ich nun Erstellungsuhrzeiten von Dateien genau ansehe fàllt mir dieser
Verschub jetzt erst massiv auf.
Ich danke für Eure Unterstützung für eine Erklàrung.

Wolfgang Badura.
 

Lesen sie die antworten

#1 Thorsten Doerfler
19/04/2008 - 16:52 | Warnen spam
Wolfgang Badura schrieb:
Beim Download mit einem eigenem Programm ist mir folgendes aufgefallen:
Die Url der Datei lautet http://www.zamg.ac.at/fix/klima/werte03-08.pdf.
Der HTTP-Header enthàlt betreffend das Erstellungsdatum
Last-Modified: Tue, 01 Apr 2008 12:04:24 GMT.

Der File wird zunàchst mit dem laufenden Datum, zB 14.04.2008 22:05
gespeichert.

Nun setze ich das Datum des Files F:\Daten\Wetter\Klimawerte_200803.pdf
mit der API-Funktion SetFileTime

hFile = OpenFile(zFilename, OFS, OF_READWRITE)
If hFile = 0 Then Exit Function ' File nicht gefunden
Retval = SetFileTime(hFile, FileDatum, FileDatum, FileDatum)
' Handle schließen
CloseHandle hFile

auf das Datum 01 Apr 2008 12:04:24.
Das funktioniert ja noch.
In der Variablen FileDatum steht, so meine Überprüfungen, die richtige
Uhrzeit 12:04.

Wenn ich nachher mit dem Explorer den File
F:\Daten\Wetter\Klimawerte_200803.pdf
ansehe, so fand ich vor der Umstellung auf die MESZ
01.04.2008 13:04, nach der Umstellung ,also auch heute, sogar 01.04.2008
14:04

Was soll der Quatsch!



Welcher Quatsch?

Woher kommt das?



Zeitverschiebung?!

Kann ich das abstellen?



Zieh um.

Wozu soll das gut sein?



Lies: Wikipedia - Zeitzone
http://de.wikipedia.org/wiki/Zeitzonen

Der File wurde eigentlich mit 01.04.2008 12:04 gespeichert!



Ja, aber GMT bzw. UTC, wenn Du Dir den Header mal genauer angesehen
hàttest.

Last-Modified: Tue, 01 Apr 2008 12:04:24 GMT.



Wir hier in DE haben aber eine Zeitverschiebung von +1h (Normalzeit)
zur UTC bzw. sogar +2h bei Sommerzeit (MESZ). Der Explorer
berücksichtigt das völlig korrekt. Wenn Du die Zeitangaben der anderen
Dateien zur UTC konvertierst wirst Du auch andere Werte erhalten, als
der Explorer anzeigt.

Thorsten Dörfler
Microsoft MVP Visual Basic

vb-hellfire visual basic faq | vb-hellfire - einfach anders
http://vb-faq.de/ | http://www.vb-hellfire.de/

Ähnliche fragen