'See datetime.tzinfo.tzname
The is_dst parameter may be used to remove ambiguity during DST
transitions.
>>> from pytz import timezone
>>> tz = timezone(\'America/St_Johns\')
>>> normal = datetime(2009, 9, 1)
>>> tz.tzname(normal)
\'NDT\'
>>> tz.tzname(normal, is_dst=False)
\'NDT\'
>>> tz.tzname(normal, is_dst=True)
\'NDT\'
>>> ambiguous = datetime(2009, 10, 31, 23, 30)
>>> tz.tzname(ambiguous, is_dst=False)
\'NST\'
>>> tz.tzname(ambiguous, is_dst=True)
\'NDT\'
>>> try:
...     tz.tzname(ambiguous)
... except AmbiguousTimeError:
...     print(\'Ambiguous\')
Ambiguous'

def tzname(self, dt, is_dst=None):

    if (dt is None):
        return self.zone
    elif (dt.tzinfo is not self):
        dt = self.localize(dt, is_dst)
        return dt.tzinfo._tzname
    else:
        return self._tzname
