Определение времени начала даты
Скажем, я хочу создать ежедневник, и я хочу разделить день на 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
Есть ли более надежная или более прямая альтернатива?