Thread Variable _ ? (52 answers)
Opened by bianca at 2020-12-25 10:24

haj
 2021-01-04 21:40
#193069 #193069
User since
2015-01-07
540 articles
BenutzerIn

user image
2021-01-04T08:32:06 bianca
Würde mir Sicherheit geben, wenn du/ihr mal drauf schaut und mir deine/eure Meinung sag(s)t. Danach wäre das dann auch vorerst mal gelöst (umgangen, verbastelt wie auch immer).

Ich kann mal zur Zeitumstellung eine Testreihe ansetzen mit Win10 und Strawberry 5.30 oder 5.32, bei der ich weiß, was richtig ist und danach auch beurteilen kann, welche Komponente was falsch oder richtig macht.

Code (perl): (dl )
1
2
3
4
5
6
   
    my @epoch = localtime $stat9;
....
    if ($^O =~ /mswin/i && $epoch[8] == 1) {
       @epoch = Date::Calc::Add_Delta_DHMS(@epoch[0..5],0,1,0,0);
   ...;

Das ist bestenfalls "gut geraten", aber vielleicht reicht das ja.
  • Zuerst wandelst Du das stat-Ergebnis in localtime. Das sollte schon eine Sommerzeit-Korrektur anhand der auf dem System eingestellten (!) Zeitzone erledigen.
  • Dann addierst Du nochmal genau eine Stunde, wenn das Datum in die Sommerzeit fiel, wohl in der Annahme, das Ergebnis von stat sei in diesem Fall fehlerhaft. Warum addierst Du dann so kompliziert im "ausformulierten" Datum und nicht gleich bei $stat9?
  • Das Element $epoch[8] ist laut Dokumentation als "true" definiert und nicht als exakt 1. Ein sicherer Vergleich wäre if ($^O =~ /mswin/i && $epoch[8])
  • Auch dann erscheint mir das $^O =~ /mswin/i recht fragil, nachdem es nicht klar ist, ob es wirklich am Betriebssystem oder an der C-Library hängt.

Muss es denn wirklich und unbedingt lokale Zeit sein? Die nicht eindeutig: Es gibt in der Umstellungsnacht im Herbst für zwei stat-Resultate die gleiche lokale Zeit.

View full thread Variable _ ?