Python pytz
Last Updated :
28 Nov, 2022
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.
Installation
Python pytz module can be installed in the given way.
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
Converting timezones
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 datetime
from pytz import timezone
format = "%Y-%m-%d %H:%M:%S %Z%z"
now_utc = datetime.now(timezone( 'UTC' ))
print (now_utc.strftime( format ))
now_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
Python pytz attributes
There are some attributes in pytz module to help us find the supported timezone strings. These attributes will help understand this module better.
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.
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
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
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 Antarctica =' , 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 Antarctica = [‘Antarctica/McMurdo’, ‘Antarctica/Casey’, ‘Antarctica/Davis’, ‘Antarctica/DumontDUrville’, ‘Antarctica/Mawson’, ‘Antarctica/Palmer’, ‘Antarctica/Rothera’, ‘Antarctica/Syowa’, ‘Antarctica/Troll’, ‘Antarctica/Vostok’]
Python pytz example
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 pytz
import datetime
from datetime import datetime
utc = pytz.utc
kiev_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 pytz
import datetime
d = datetime.datetime( 1984 , 1 , 10 , 23 , 30 )
d1 = d.strftime( "%B %d, %Y" )
d2 = d.isoformat()
print (d1)
print (d2)
|
Output
January 10, 1984
1984-01-10T23:30:00
localize()
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 pytz
import datetime
from datetime import datetime
ist = pytz.timezone( 'Asia/Kolkata' )
utc = pytz.utc
local_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 datetime
from pytz import timezone
naive = datetime( 2019 , 8 , 19 , 12 , 0 )
aware = timezone( 'UTC' ).localize(naive)
print (aware)
|
Output
2019-08-19 12:00:00+00:00
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...