Skip to content

Instantly share code, notes, and snippets.

@mvaz
Created August 31, 2011 22:05
Show Gist options
  • Select an option

  • Save mvaz/1184861 to your computer and use it in GitHub Desktop.

Select an option

Save mvaz/1184861 to your computer and use it in GitHub Desktop.
TzCronTrigger
class TzCronTrigger(CronTrigger):
def __init__(self,**values):
self.tz = values.pop('tz', None)
if self.tz:
if self.tz not in pytz.all_timezones:
raise ValueError("invalid specified timezone '%s'" % self.tz)
self.tz = pytz.timezone( self.tz )
super(TzCronTrigger, self).__init__(**values)
def get_next_fire_time(self, start_date):
start_date_tz = self._convert_in_tz(start_date)
ref_time = super(TzCronTrigger, self).get_next_fire_time(start_date_tz)
return self._convert_from_tz( ref_time )
def _get_local_tz(self):
return pytz.timezone(time.tzname[0])
def _convert_in_tz(self, dt):
dt = self._get_local_tz().localize(dt, is_dst=True)
return dt.astimezone(self.tz)
def _convert_from_tz(self, dt):
dt = self.tz.localize(dt, is_dst=True)
return dt.astimezone(self._get_local_tz())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment