Python time mktime() Method



The Python time mktime() method converts the object form of local time into seconds. This method is the inverse function of localtime() and accepts a struct_time object or a full 9-tuple as its argument. It returns a floating point number, for compatibility with time().

If the input value cannot be represented as a valid time, either OverflowError or ValueError will be raised.

Syntax

Following is the syntax for the Python mktime() method −

time.mktime(t)

Parameters

  • t − This is the struct_time or full 9-tuple.

Return Value

This method returns a floating point number, for compatibility with time().

Example

The following example shows the usage of the Python time mktime() method. In here, we are passing a normal 9-tuple as an argument to this method.

import time

t = (2009, 2, 17, 17, 3, 38, 1, 48, 0)
secs = time.mktime(t)
print("Time in seconds:",  secs)
print("Time represented as a string:", time.asctime(time.localtime(secs)))

When we run above program, it produces following result −

Time in seconds: 1234870418.0
Time represented as a string: Tue Feb 17 17:03:38 2009

Example

Now let us try to pass an object "struct_time" as the argument to this method.

We are using the time.struct_time() method to convert the 9-tuple into an object "time_struct". This object is then passed as an argument to the mktime() method, using which we are retrieving the local time in seconds.

import time

t = (2009, 2, 17, 17, 3, 38, 1, 48, 0)
time_struct = time.struct_time(t)
secs = time.mktime(time_struct)
print("Time in seconds:",  secs)
print("Time represented as a string:", time.asctime(time.localtime(secs)))

If we compile and run the program above, the output is displayed as follows −

Time in seconds: 1234870418.0
Time represented as a string: Tue Feb 17 17:03:38 2009

Example

If we pass the argument based on the UTC time, the method provides wrong timestamps as return values.

The current time obtained from the gmtime() method in the form of an object is passed as an argument to the mktime() method. Then, the floating-point value obtained as the return value of the mktime() method is passed as an argument to the gmtime() method. Both return values of the gmtime() method differ.

import time

t = time.gmtime()
print("Time as object:", t)
secs = time.mktime(t)
print("Time in seconds:",  secs)

obj = time.gmtime(secs)
print("Time as object:",  obj)

The output for the program above is displayed as follows −

Time as object: time.struct_time(tm_year=2023, tm_mon=1, tm_mday=10, tm_hour=6, tm_min=31, tm_sec=33, tm_wday=1, tm_yday=10, tm_isdst=0)
Time in seconds: 1673312493.0
Time as object: time.struct_time(tm_year=2023, tm_mon=1, tm_mday=10, tm_hour=1, tm_min=1, tm_sec=33, tm_wday=1, tm_yday=10, tm_isdst=0)

Example

If the values passed as an argument is not a valid time component, the method raises a OverflowError.

import time

t = (202, 1, 10, 12, 6, 55, 1, 10, 0)
secs = time.mktime(t)
print("Time in seconds:",  secs)

The output for the program above is given as follows −

Traceback (most recent call last):
  File "d:\Alekhya\Programs\Python Time Programs\mktimedemo.py", line 4, in 
    secs = time.mktime(t)
OverflowError: mktime argument out of range

Example

If the values passed as an argument exceed the limit of tuple components, the method raises a TypeError.

import time

t = (2023, 1, 10, 12, 6, 55, 1, 10, 0, 44)
secs = time.mktime(t)
print("Time in seconds:",  secs)

On executing the program above, the result is produced as follows −

Traceback (most recent call last):
  File "d:\Tutorialspoint\Programs\Python Time Programs\mktimedemo.py", line 4, in 
    secs = time.mktime(t)
TypeError: mktime(): illegal time tuple argument
python_date_time.htm
Advertisements