是否dateutil rrule支持DST和TZ?需要類似於iCalendar RRULE的東西。如何處理經常性事件中的DST和TZ?
如果沒有 - 如何解決這個問題(安排定期事件& DST偏移量變化)
進口
>>> from django.utils import timezone
>>> import pytz
>>> from datetime import timedelta
>>> from dateutil import rrule
>>> now = timezone.now()
>>> pl = pytz.timezone("Europe/Warsaw")
問題與timedelta(需要有相同的本地時間,但不同的DST偏移) :與RRULE
>>> pl.normalize(now)
datetime.datetime(2012, 9, 20, 1, 16, 58, 226000, tzinfo=<DstTzInfo 'Europe/Warsaw' CEST+2:00:00 DST>)
>>> pl.normalize(now+timedelta(days=180))
datetime.datetime(2013, 3, 19, 0, 16, 58, 226000, tzinfo=<DstTzInfo 'Europe/Warsaw' CET+1:00:00 STD>)
問題(需要具有相同的每次出現的每一個地方時):
>>> r = rrule.rrule(3,dtstart=now,interval=180,count=2)
>>> pl.normalize(r[0])
datetime.datetime(2012, 9, 20, 1, 16, 58, tzinfo=<DstTzInfo 'Europe/Warsaw' CEST+2:00:00 DST>)
>>> pl.normalize(r[1])
datetime.datetime(2013, 3, 19, 0, 16, 58, tzinfo=<DstTzInfo 'Europe/Warsaw' CET+1:00:00 STD>)
關於夏令時和時區的最佳實踐,這個http://stackoverflow.com/q/2532729/1167333給出了最佳實踐的一個很好的總結 – oberron