2016-08-04 28 views
0

Ich versuche python-dateutil zu verwenden, um eine Rulle zu erstellen, um ein Ereignis zu planen, das jeden Tag um genau 6 PM EST ausgeführt wird.Wie lege ich eine RRule unter Berücksichtigung der Sommerzeit fest?

Die aktuelle RRULE Ich verwende einfach:

byhour:23; 

dies bei nicht-Sommerzeit 06.00 Uhr macht, aber während der Sommerzeit macht es als 07.00.

Wie ändere ich dies, um die Sommerzeit zu berücksichtigen?

Mein Server läuft auf (Linux) ist derzeit für EST konfiguriert und berücksichtigt bereits DST, daher sieht es so aus, als ob Python-Dateutil dies ignoriert und Berechnungen auf UTC basiert.

+0

Haben Sie versucht, die vorgeschlagene Antwort in [Zeitzone von datetime.datetime.fromtimestamp()] abgerufen (http://stackoverflow.com/questions/18812638/get-timezone-used-by-datetime-datetime-fromtimestamp)? – Frangipanes

Antwort

2

Sie sollten BYHOUR nicht dafür verwenden.

Alles, was Sie brauchen, ist ein RRULE: FREQ = DAILY aber Ihre DTSTART mit Zeitzone id in lokaler Zeit sein muss, nicht in UTC, also so etwas wie:

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