diff options
author | Alex Grönholm <alex.gronholm@nextday.fi> | 2013-07-27 18:07:45 +0300 |
---|---|---|
committer | Alex Grönholm <alex.gronholm@nextday.fi> | 2013-07-27 18:07:45 +0300 |
commit | 307e0f13220a465de8c1764e63cd4092272d95b4 (patch) | |
tree | 66d9ac3cc841d7c33dc67618c1b4295b2a9d6fe7 /apscheduler/triggers/interval.py | |
parent | a1629b01f91ce0cbbfc0cbeeb283ca4011756c25 (diff) | |
download | apscheduler-307e0f13220a465de8c1764e63cd4092272d95b4.tar.gz |
Added timezone awareness
Diffstat (limited to 'apscheduler/triggers/interval.py')
-rw-r--r-- | apscheduler/triggers/interval.py | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/apscheduler/triggers/interval.py b/apscheduler/triggers/interval.py index 5c3206a..03a9b8d 100644 --- a/apscheduler/triggers/interval.py +++ b/apscheduler/triggers/interval.py @@ -1,11 +1,11 @@ from datetime import datetime, timedelta from math import ceil -from apscheduler.util import convert_to_datetime, timedelta_seconds +from apscheduler.util import convert_to_datetime, timedelta_seconds, datetime_repr class IntervalTrigger(object): - def __init__(self, weeks=0, days=0, hours=0, minutes=0, seconds=0, start_date=None): + def __init__(self, defaults, weeks=0, days=0, hours=0, minutes=0, seconds=0, start_date=None, timezone=None): """ Triggers on specified intervals. @@ -15,7 +15,10 @@ class IntervalTrigger(object): :param minutes: number of minutes to wait :param seconds: number of seconds to wait :param start_date: when to first execute the job and start the counter (default is after the given interval) + :param timezone: time zone for ``start_date`` + :type timezone: str or an instance of a :cls:`~datetime.tzinfo` subclass """ + timezone = timezone or defaults['timezone'] self.interval = timedelta(weeks=weeks, days=days, hours=hours, minutes=minutes, seconds=seconds) self.interval_length = timedelta_seconds(self.interval) if self.interval_length == 0: @@ -23,9 +26,9 @@ class IntervalTrigger(object): self.interval_length = 1 if start_date is None: - self.start_date = datetime.now() + self.interval + self.start_date = datetime.now(timezone) + self.interval else: - self.start_date = convert_to_datetime(start_date) + self.start_date = convert_to_datetime(start_date, timezone, 'start_date') def get_next_fire_time(self, start_date): if start_date < self.start_date: @@ -39,6 +42,5 @@ class IntervalTrigger(object): return 'interval[%s]' % str(self.interval) def __repr__(self): - return "<%s (interval=%s, start_date=%s)>" % ( - self.__class__.__name__, repr(self.interval), - repr(self.start_date)) + return "<%s (interval=%r, start_date='%s')>" % (self.__class__.__name__, self.interval, + datetime_repr(self.start_date)) |