Festlegen der Uhrzeit, zu der ein Datum beginnt

Angenommen, ich möchte einen Tagesplaner erstellen und den Tag in 15-Minuten-Abschnitte unterteilen.

Einfach richtig? Fangen Sie einfach um Mitternacht an und ... Falsch! In America / Sao_Paulo beginnt ein Tag pro Jahr um 01:00 Uhr, da sich die Sommerzeit ändert.

Wie kann man bei gegebener Zeitzone und gegebenem Datum die Epochenzeit ermitteln, zu der der Tag beginnt?

Mein erster Gedanke war, folgendes zu verwenden, aber es wird angenommen, dass jeder Tag einen 23:59 hat. Das ist wahrscheinlich keine bessere Annahme als anzunehmen, dass jeder Tag eine Mitternacht hat.

perl -MDateTime -E'
   say
      DateTime->new( year => 2013, month => 10, day => 20 )
      ->subtract( days => 1 )
      ->set( hour => 23, minute => 59 )
      ->set_time_zone("America/Sao_Paulo")
      ->add( minutes => 1 )
      ->strftime("%H:%M");
'
01:00

Gibt es eine robustere oder direktere Alternative?

Antworten auf die Frage(7)

Ihre Antwort auf die Frage