Python time tzset() Method



The Python time tzset() method resets the time conversion rules used by the library routines. The environment variable TZ specifies how this is done. This method is available in UNIX Systems only.

The standard format of the TZ environment variable is (white space added for clarity) −

std offset [dst [offset [,start[/time], end[/time]]]]
  • std and dst − Three or more alphanumerics giving the timezone abbreviations. These will be propagated into time.tzname.

  • offset − The offset has the form − .hh[:mm[:ss]]. This indicates the value added the local time to arrive at UTC. If preceded by a '-', the timezone is east of the Prime Meridian; otherwise, it is west. If no offset follows dst, summer time is assumed to be one hour ahead of standard time.

  • start[/time], end[/time] − Indicates when to change to and back from DST. The format of the start and end dates are one of the following −

    • Jn − The Julian day n (1 <= n <= 365). Leap days are not counted, so in all years February 28 is day 59 and March 1 is day 60.

    • n − The zero-based Julian day (0 <= n <= 365). Leap days are counted, and it is possible to refer to February 29.

    • Mm.n.d − The d'th day (0 <= d <= 6) or week n of month m of the year (1 <= n <= 5, 1 <= m <= 12, where week 5 means 'the last d day in month m' which may occur in either the fourth or the fifth week). Week 1 is the first week in which the d'th day occurs. Day zero is Sunday.

    • time − This has the same format as offset except that no leading sign ('-' or '+') is allowed. The default, if time is not given, is 02:00:00.

Note: Changing the environment variables without calling the tzset() method can effect the output for the other methods like localtime().

Syntax

Following is the syntax for the Python time tzset() method −

time.tzset()

Parameters

The method does not accept any parameters.

Return Value

This method does not return any value.

Example

The following example shows the usage of the Python time tzset() method. Here, we are setting the timezones EST and AEDT as the environment variables and resetting the time conversion rules relative to the given time zone.

import time
import os

os.environ['TZ'] = 'EST+05EDT,M4.1.0,M10.5.0'
time.tzset()
print(time.strftime('%X %x %Z'))

os.environ['TZ'] = 'AEST-10AEDT-11,M10.5.0,M3.5.0'
time.tzset()
print(time.strftime('%X %x %Z'))

When we run above program, it produces following result −

13:00:40 02/17/09 EST
05:00:40 02/18/09 AEDT

Example

Another program where we are setting the environment as the UTC time can be seen below −

import time
import os

os.environ['TZ'] = 'UTC'
time.tzset()
print("After reset:", time.strftime('%X %x %Z'))

The output for the program above is displayed as follows −

05:25:03 01/12/23 UTC

Example

Sometimes it is more convenient to set the TZ environment variable to the path of the database files containing information of the timezone rules.

For example, here we are setting the TZ environment variable as "Asia/Kolkata" and resetting it using the tzset() method. Then to find the current local time, we are calling the localtime() method.

import time
import os

os.environ['TZ'] = 'Asia/Kolkata'
time.tzset()
print(time.localtime())

time.struct_time(tm_year=2023, tm_mon=1, tm_mday=12, tm_hour=15, tm_min=56, tm_sec=27, tm_wday=3, tm_yday=12, tm_isdst=0)
python_date_time.htm
Advertisements