Search code examples
pythondjangotimezonepytz

How to get the common name for a pytz timezone eg. EST/EDT for America/New_York


Given a pytz timezone for a particular user(calculated from his offset), i want to display the common name for that timezone. I'm assuming people are more accustomed to seeing EST or PST instead of spelled out like America/NewYork.

Does pytz give me those standard names somewhere, or will i have to manually do this via a table? This could potentially get messy, since for example places are EST in a season and shift to showing EDT during others.


Solution

  • Given a pytz timezone for a particular user(calculated from his offset), i want to display the common name for that timezone. I'm assuming people are more accustomed to seeing EST or PST instead of spelled out like America/NewYork.

    If you need this derived from a datetime object localized with pytz...

    >>> import pytz as tz
    >>> from datetime import datetime as dt
    >>> CT = tz.timezone('America/Chicago')
    >>>
    >>> summer_day = dt(2010, 7, 4, 0, 1, 1)
    >>> bar = CT.localize(summer_day, is_dst=None)
    >>> bar.tzname()
    'CDT'
    >>>
    >>> christmas = dt(2010, 12, 25, 0, 1, 1)
    >>> foo = CT.localize(christmas, is_dst=None)
    >>> foo.tzname()
    'CST'
    >>>