Определение времени начала даты

Скажем, я хочу создать ежедневник, и я хочу разделить день на 15 минут.

Легко, правда? Просто начните в полночь и ... неправильно! В Америке / Сан-Паулу один день в году начинается в 01:00 из-за изменения летнего времени.

Учитывая часовой пояс и дату, как найти время эпохи, в которое начинается день?

Моей первой мыслью было использовать следующее, но предполагается, что каждый день имеет 23:59. Тот'Вероятно, не лучше предположения, чем предположить, что у каждого дня есть полночь.

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

Есть ли более надежная или более прямая альтернатива?

Ответы на вопрос(7)

Ваш ответ на вопрос