def __new__(cls, posix_rules): self = _tzinfo.__new__(cls) self.tzstr = posix_rules r = posix_rules.strip().split(',') self.offset, self.abbrs, dst_offset = parse_std_dst(r[0]) if dst_offset is not None: self.dst_save = dst_offset - self.offset if len(r) > 2: self.dst_start = parse_mnd_time(r[1]) self.dst_end = parse_mnd_time(r[2]) return self
def __new__(cls, tz=None, *args): if not isinstance(tz, str): return _tzinfo.__new__(cls) try: return cls.cache[tz] except KeyError: pass try: return PosixRules(tz) except ValueError: return cls.m_get(tz)
def __new__(self, zone = None): if self.adding: return tzinfo.__new__(self) try: if 'zone' in vars(zone): return zone except: pass if not self.zones: self.adding = 1 self.zones = {'GMT': TimeZone('GMT')} zoneFile = open(host.zoneFile) for line in zoneFile: word = line.strip().split() if word and word[0][0] != '#': self.zones[word[2].upper()] = TimeZone(word[2]) zoneFile.close() self.adding = None if not zone: zone = host.timeZone or 'GMT' zone = zone.upper() if zone in self.zones: return self.zones[zone] for zoneInfo in self.zones.values(): if zoneInfo.tzname().upper() == zone: return zoneInfo return None
def __new__(self, zone=None): if self.adding: return tzinfo.__new__(self) try: if 'zone' in vars(zone): return zone except: pass if not self.zones: self.adding = 1 self.zones = {'GMT': TimeZone('GMT')} zoneFile = open(host.zoneFile) for line in zoneFile: word = line.strip().split() if word and word[0][0] != '#': self.zones[word[2].upper()] = TimeZone(word[2]) zoneFile.close() self.adding = None if not zone: zone = host.timeZone or 'GMT' zone = zone.upper() if zone in self.zones: return self.zones[zone] for zoneInfo in self.zones.values(): if zoneInfo.tzname().upper() == zone: return zoneInfo return None
def _create(cls, offset, name=None): self = tzinfo.__new__(cls) self._offset = offset self._name = name return self
def __new__(cls): try: return cls._instance except AttributeError: cls._instance = tzinfo.__new__(UTCTimeZone) return cls._instance