Hallo @ all
Ich versuche gerade über die "LastWriteTime", Dateien von einem Remoterechner mit dem Timestamp aus dem lokalen Sicherungs zip zu vergleichen.
Funktioniert soweit auch, bei 80% der Dateien.
Beim Rest ist die Zeit aus dem Zip z.B 07:54:36,
die Zeit der Remote Datei jedoch 08:54:36 und die UTC zeit 06:54:36
Offset gibt es leider keinen .
Der Windows Explorer zeigt alles korrelt an. (07:54:36)
Kennt jemand dieses Phänomen????
mfg
Gerald
Hallo schoko01,
ja, kenne ich, wie dieser Kommentar aus einem meiner Programme zeigt:
//-----------------------------------------------------------------
// Wenn man die Zeit per
// fi.LastWriteTime
// oder per
// fi.LastWriteTimeUtc.ToLocalTime ()
// abbruft sind *manche* Zeiten gegenüber der Anzeige von 'dir'
// eine Stunde zu hoch (und zwar die, die als Zeitzoneoffset +2
// statt +1 haben). Da dir aber als Zeitzonenoffset (wohl) immer
// +1 verwendet (warum auch immer; wohl auch bei Sommerzeit)
// addiere ich auch fest eine Stunde.
// Das hilft zwar nicht bei bei Dateien, die ich bei verstellter
// Zeitzone auf meinem Rechner erstellt habe, aber zumindest
// scheint es bei Sommer- und Winterzeit zu funktionieren.
//-----------------------------------------------------------------
Natürlich ist das leider gleichzeitig auch ein Eingeständnis, dass ich keine in allen Fällen korrekte Lösung kenne.
Ob dir
und Explorer in allen Fällen die gleichen Zeiten anzeigen, weiß ich nicht, aber gehe mal davon aus.
herbivore
Danke für die schnelle Antwort.
Einleuchten tut mir das zwar nicht ganz, da auf dem Rechner wo die Sicherungsdatei erstellt wird, eine Zeitsynchonisation mit einem Server läuft und die Zeitzone somit immer gleich sein sollte.
Dann eben Datein binär vergleichen.
mfg Gerald
Hallo zusammen,
das Problem hat mich gerade nochmal eingeholt. Es ist wohl doch etwas anders als in meinem Kommentar oben beschrieben.
Nach meinen aktuellen Versuchen scheint 'dir' immer den aktuellen Zeitzonenoffset auf die eigentlich als UTC gespeicherte Zeit zu addieren, egal welcher Zeitzonenoffset zum Zeitpunkt der letzten Änderung gültig war. Also während der deutschen Winterzeit +1 und während der deutschen Sommerzeit +2. Das bedeutet, dass 'dir' für ein und dieselbe Datei eine um eine Stunde abweichende Zeit anzeigt, je nachdem, ob man 'dir' im Winter oder im Sommer aufruft.
Nehmen wir an, es gibt zwei Dateien, eine zuletzt im Sommer geändert und eine im Winter und zwar jeweils um 14:00 in der zum Änderungszeitpunkt geltenden Zeitzone. Die im Dateisystem gespeicherte UTC-Zeit ist im Sommer um zwei Stunden niedriger (also 12:00 UTC) und im Winter nur eine Stunde niedriger (also 13:00 UTC).
'dir' addiert im Sommer aufgerufen nun pauschal zwei Stunden auf die gespeicherte UTC-Zeit und zeigt folgendes an:
11.07.2017 14:00 0 sommer.txt
11.01.2017 15:00 0 winter.txt
'dir' addiert im Winter aufgerufen nun pauschal eine Stunde auf die gespeicherte UTC-Zeit und zeigt folgendes an:
11.07.2017 13:00 0 sommer.txt
11.01.2017 14:00 0 winter.txt
Wenn man nun die Zeit haben möchte, die 'dir' aktuell anzeigt, muss man also auf die UTC-Zeit eine Stunde addieren, wenn aktuell die deutsche Winterzeit gilt, und zwei Stunden, wenn aktuell die deutsche Sommerzeit gilt.
Das ist natürlich sehr unbefriedigend, denn wenn ich eine Datei um 14:00 geändert habe, dann möchte ich, dass immer 14:00 angezeigt wird, egal wann ich 'dir' aufrufe.
Also eigentlich sollte die Anzeige Sommers wie Winters lauten:
11.07.2017 14:00 0 sommer.txt
11.01.2017 14:00 0 winter.txt
Aber immerhin weiß ich nun wie 'dir' rechnet und kann somit das Verhalten nachahmen/nachbilden.
herbivore