import datetime class BaseTimezone(datetime.tzinfo): TIMEDELTA_ZERO = datetime.timedelta(0) def __init__(self, timezone_name, offset_seconds): datetime.tzinfo.__init__(self) self.timezone_name = timezone_name self.offset = datetime.timedelta(seconds=offset_seconds) def utcoffset(self, dt): return self.offset def dst(self, dt): return BaseTimezone.TIMEDELTA_ZERO def tzname(self, dt): return self.timezone_name # define timezones class UTC(BaseTimezone): def __init__(self): BaseTimezone.__init__(self, "UTC", 0) class Melbourne(BaseTimezone): def __init__(self): BaseTimezone.__init__(self, "Melbourne", 10 * 3600)