2021-01-05T08:42:41
bianca2021-01-05T01:18:37
hajUm uns zu verwirren?
Nein. Sondern um festzustellen, mit welchem Code was raus kommt. Wir sind doch hier im Moment im Labor oder nicht? Verstehe dich gerade nicht so richtig. Fühle ich da etwas Verärgerung bei dir?
Eher Unverständnis. Im Labor bemühe ich mich, Fehler zu isolieren und Experimente nachvollziehbar zu machen. Das kann ich aber nicht, wenn alles hintereinander angewendet wird und ich die Zeitzonen- und DST-Einstellungen Deines Systems nicht kenne.
2021-01-05T08:42:41
biancaAktuell weiß ich, dass es in Strawberry anders läuft als ich mir wünschte...
Ja, da scheiden sich möglicherweise die Geister. Nach meiner Lesart der alten Artikel (2003!) macht Strawberry Perl es so, wie ich es für richtig halte und der Fehler liegt irgendwo anders.
2021-01-05T08:42:41
biancaWas soll ich tun/testen/schreiben?
Wenn Du ein System hast, bei dem Du die Systemzeit ändern kannst, dann schreibe ein Programm, das alle halbe Stunde eine Datei mit fortlaufend nummerierten Dateinamen erstellt und lasse das während der Zeitumstellung von Sommerzeit auf Winterzeit laufen - und dann prüfe, was
stat Dir für die Liste liefert. Mein Windows-Notebook steht grade woanders (Serenia), ich werde so einen Test machen, wenn die reale Zeitumstellung passiert.
2021-01-05T08:42:41
bianca2021-01-05T01:18:37
hajLaut
Dokumentation:
Quote$isdst is true if the specified time occurs during Daylight Saving Time, false otherwise.
-1 ist "true" bei Perl. Wenn Du -1 von 1 unterscheiden musst, dann ist das Glücksspiel. In welcher Situation bekommst Du -1?
Bekomme ich nicht sondern steht in der selben Doku bei
Localtime([time]):
QuoteThe daylight savings time flag ("$dst") will be "-1" if this information is not available on your system, "0" for no daylight savings time (i.e., winter time) and "1" when daylight savings time is in effect.
Sorry, Bianca, das ist
nicht die Doku, die ich verlinkt habe. Du zitierst aus
Date::Calc für
Localtime (großes
L!), ich meine die Perl-Funktion
localtime. Meines Wissens war letzte System, in dem diese Information nicht verfügbar war, Perl 5.004 auf MS-DOS.
2021-01-05T08:42:41
bianca2021-01-05T01:18:37
hajIn der Umstellungsnacht wird die lokale Zeit um eine Stunde zurückgedreht. stat liefert, wenn's korrekt implementiert ist, die Anzahl an Sekunden seit 1. Januar 1970 UTC, und läuft einfach weiter. Lokale Zeiten von 02:00 bis 03:00 gibt es in der Umstellungsnacht zweimal, die sind 3600 stat-Sekunden auseinander.
Wie schon Raubtier geantwortet: das macht die andere rsync Seite auch. Dann matcht es wieder. Mit welchem Ergebnis es matcht spielt keine Rolle.
Hier kommt mit
rsync eine weitere
Fehlerquelle ins Spiel... ich habe so langsam den Verdacht, dass Du ein rsync-Problem mit Perl-Mitteln "reparieren" willst.
2021-01-05T08:42:41
biancaDie andere Seite ist ein FTP-Server mittels
Net::FTP der es "richtig" macht, daher ist hier nur die lokale Seite zu korrigieren gewesen.
Hm.
Net::FTP ist ein FTP-Client und kein Server. Läuft der Server vielleicht unter Windows und hat seine eigenen DST-Fehler?
2021-01-05T08:42:41
biancaVielen vielen Dank auch nochmal für deine Hilfe! Und bitte nicht sauer sein über meine Doofheit. Ich habe mir das alles eher schlecht als recht selbst angeeignet. Aber es läuft - meistens :)
Wenn ich sauer wäre, würde ich einfach nicht mehr antworten. Aber ich finde das eigentlich eine der schönen Eigenschaften
dieses Forums, dass hier auch "einfachere" Fragen gestellt und beantwortet werden.
2021-01-05T08:42:41
biancaIch setze gelöst und stehe - wie gesagt - für weitere Tests und Analysen gern zur Verfügung.
Testen geht am einfachsten in der Sommerzeit: Auf jedem beteiligten System zur gleichen Zeit eine Datei anlegen, mit dem eingebauten
stat die Daten notieren... und dann die Dateien mit rsync oder Net::FTP hin-und herkopieren und beobachten, ob und wie sich die
stat-Ausgaben ändern. Ansonsten: Wo immer möglich,
localtime durch
gmtime ersetzen.