2016-08-04 18 views
0

Я пытаюсь использовать python-dateutil, чтобы создать rrule, чтобы запланировать событие, которое будет запускаться каждый день ровно с 6 вечера по EST.Как указать RRule с учетом летнего времени?

Ток rrule Я использую просто:

byhour:23; 

это оказывает 6PM в нерабочие летнее время, но в летнее время он делает, как 7PM.

Как изменить это, чтобы учесть DST?

Мой сервер, на котором работает он (Linux), в настоящее время настроен для EST и уже учитывает DST, поэтому он выглядит как python-dateutil, игнорирует это и основывает вычисления в UTC.

+0

Вы пробовали предложенный ответ в [Получить часовой пояс, используемый datetime.datetime.fromtimestamp()] (http://stackoverflow.com/questions/18812638/get-timezone-used-by-datetime-datetime-fromtimestamp)? – Frangipanes

ответ

2

Вы не должны использовать BYHOUR для этого.

Все, что вам нужно, это RRULE: FREQ = DAILY но нуждается в вашем DTSTART быть в местное время с часовым поясом идентификатором, а не в UTC, то есть что-то вроде:

DTSTART;TZID=America/New_York:20160805T180000 
RRULE:FREQ=DAILY