Python pytz

13 Jan, 2021
Pytz brings the Olson tz database into Python and thus supports almost all time zones. This module serves the date-time conversion functionalities and helps user serving international client’s base. It enables time-zone calculations in our Python applications and also allows us to create timezone aware datetime instances. 
Python pytz module can be installed in the given way.
Using command line:
pip install pytz
Using tarball, run the following command as an administrative user:
python setup.py install
Using setuptools, the latest version will be downloaded for you from the Python package index:
easy_install --upgrade pytz
By using astimezone() function we can convert the time into a different timezone.
Syntax: astimezone(t)
Parameter: t is time to be converted
Return: Converted timezone
Example: 
Python3
from datetime import datetimefrom pytz import timezone  format = "%Y-%m-%d %H:%M:%S %Z%z"  # Current time in UTCnow_utc = datetime.now(timezone('UTC'))print(now_utc.strftime(format))  # Convert to Asia/Kolkata time zonenow_asia = now_utc.astimezone(timezone('Asia/Kolkata'))print(now_asia.strftime(format))
Output
2020-12-30 04:38:16 UTC+0000 
2020-12-30 10:08:16 IST+0530
There are some attributes in pytz module to help us find the supported timezone strings. These attributes will help understand this module better.
all_timezones
It returns the list all the available timezones with pytz.all_timezones:
Python3
import pytz    print('the supported timezones by the pytz module:',      pytz.all_timezones, '\n')
Output:
The above output is showing some values, because the list is very large.
 all_timezones_set
It returns the set of all the available timezones with pytz.all_timezones_set:
Python3
import pytz    print('all the supported timezones set:',      pytz.all_timezones_set, '\n')
Output
The output order will be different in your system because it is a set.
Common_timezones, Common_timezones_set 
It returns the list and set of commonly used timezones with pytz.common_timezones, pytz.common_timezones_set.
Python3
import pytz  print('Commonly used time-zones:',       pytz.common_timezones, '\n')  print('Commonly used time-zones-set:',      pytz.common_timezones_set, '\n')
Output
country_names 
It returns a dict of country ISO Alpha-2 Code and country name as a key-value pair.
Python3
import pytz    print('country_names =')  for key, val in pytz.country_names.items():    print(key, '=', val, end=',')      print('\n')print('equivalent country name to the input code: =',      pytz.country_names['IN'])
Output
country_names =AD = Andorra,AE = United Arab Emirates,TD = Chad,....,ZA = South Africa,ZM = Zambia,ZW = Zimbabwe,equivalent country name to the input code:  India
 country_timezones
It returns a dictionary of country ISO Alpha-2 Code as key and list of supported time-zones for a particular input key (country code) as value
Python3
import pytz    print('country_timezones =')  for key, val in pytz.country_timezones.items():    print(key, '=', val, end=',')      print('\n')print('Time-zones supported by Antartica =', pytz.country_timezones['AQ'])
Output
country_timezones =AD = [‘Europe/Andorra’],AE = [‘Asia/Dubai’],AF = [‘Asia/Kabul’],.....,ZM = [‘Africa/Lusaka’],ZW = [‘Africa/Harare’],Time-zones supported by Antartica = [‘Antarctica/McMurdo’, ‘Antarctica/Casey’, ‘Antarctica/Davis’, ‘Antarctica/DumontDUrville’, ‘Antarctica/Mawson’, ‘Antarctica/Palmer’, ‘Antarctica/Rothera’, ‘Antarctica/Syowa’, ‘Antarctica/Troll’, ‘Antarctica/Vostok’]
Given below are certain examples to show how this module can be put to use.
Example 1: creating datetime instance with timezone information.
Python3
# import the modulesimport pytzimport datetimefrom datetime import datetime    # getting utc timezoneutc = pytz.utc  # getting timezone by namekiev_tz = pytz.timezone('Europe/Kiev')print('UTC Time =', datetime.now(tz=utc))print('IST Time =', datetime.now(tz=kiev_tz))
Output
UTC Time = 2020-12-15 08:23:17.063960+00:00 
IST Time = 2020-12-15 10:23:17.063988+02:00
Example 2: 
Python3
# import the modulesimport pytzimport datetime    d = datetime.datetime(1984, 1, 10, 23, 30)  # strftime method allows you to print a string # formatted using a series of formatting directivesd1 = d.strftime("%B %d, %Y")  # isoformat method used for quickly generating # an ISO 8601 formatted date/timed2 = d.isoformat()print(d1)print(d2)
Output
January 10, 1984 
1984-01-10T23:30:00
localize() is the correct function to use for creating datetime aware objects with an initial fixed datetime value. The resulting datetime aware object will have the original datetime value. This function is provided by python library. pytz.localize() is useful for making a naive timezone aware. it is useful when a front-end client sends a datetime to the backend to be treated as a particular timezone (usually UTC).
Example :
Python3
import pytzimport datetimefrom datetime import datetime    # using localize() function, my system is on IST timezoneist = pytz.timezone('Asia/Kolkata')utc = pytz.utclocal_datetime = ist.localize(datetime.now())  print('IST Current Time =', local_datetime.strftime('%Y-%m-%d %H:%M:%S %Z%z'))print('Wrong UTC Current Time =', utc.localize(    datetime.now()).strftime('%Y-%m-%d %H:%M:%S %Z%z'))
Output
IST Current Time = 2020-12-15 08:49:56 IST+0530 
Wrong UTC Current Time = 2020-12-15 08:49:56 UTC+0000
Example
Python3
from datetime import datetimefrom pytz import timezone    # Set the time to noon on 2019-08-19naive = datetime(2019, 8, 19, 12, 0)  # Let's treat this time as being in the UTC timezoneaware = timezone('UTC').localize(naive)print(aware)
Output
2019-08-19 12:00:00+00:00
Picked
python-modules
Technical Scripter 2020
Python
Technical Scripter
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
How to Install PIP on Windows ?
Python Classes and Objects
Python OOPs Concepts
Introduction To PYTHON
How to drop one or multiple columns in Pandas Dataframe
Check if element exists in list in Python
Python | os.path.join() method
How To Convert Python Dictionary To JSON?
Python | Get unique values from a list
Defaultdict in Python