Time module

Python offers a module called ‘time’ to create varying functions that are related to time as well as to achieve time-related tasks. Consider a function from the ‘time’ module which returns the number of seconds passed since ‘epoch’. Epoch is the time passed since January the first of 1970. 

import time

# This prints time passed since epoch
print(time.time())

We get:

We get the seconds returned as a floating-point number.

NOTE: 1970 is not the birth of epoch, but was conveniently chosen when it was being upgraded. To learn more check out this article -> https://kb.narrative.io/what-is-unix-time

Another useful function from this module is the ctime() function which takes the current seconds passed since epoch and returns that value in a readable format.

import time

# This prints time passed since epoch
seconds_since_epoch = time.time()

# returns epoch passed in a string format
time_in_string = time.ctime(seconds_since_epoch)
print(time_in_string)

We get:

Alternatively, we can also achieve the same as above by giving the seconds passed directly as an argument. NOTE: Seconds passed since epoch is constantly incremented thus each time you run this code you will get a different output.

# returns epoch passed in a string format
time_in_string = time.ctime(time.time())
print(time_in_string)

The ‘time’ module also offers a function called gmtime(), which returns a structure of time that has 9 attributes, and it has the current year, month, day, hour, minute, second, weekday, year day, and isdst (to check daylight saving time DST). 

NOTE: To learn more about DST check out this article -> https://towardsdev.com/giant-mess-dealing-with-timezones-and-daylight-saving-time-in-python-7222d37658cf

 

Consider an example:

import time

# takes time passed since epoch as argument
struct = time.gmtime(time.time())
print(struct)

We get the output as:

We have frequently used a function from this module in our earlier blogs, and that is the sleep() function. This function takes the number of seconds the program should wait before execution. Consider an example:

import time

print("First print statement and it prints without any delay")

# Make the program wait 3 seconds
print("--Waiting--")
time.sleep(3)

print("Second print statement and it prints after 3 seconds")

We get the output of the above as:

We can use the time passed since epoch as a timestamp and consequently that time can be saved by programs to a database. However, when using that timestamp it makes no sense to the user, and thus, we need to convert it into a human-readable format. Using the following code we get:

from datetime import datetime
import time


# current timestamp
time_stamp = time.time()

# timestamp to datetime
date_time_object = datetime.fromtimestamp(time_stamp)

print(date_time_object)

We get the output as:

Conversely, we can also convert a datetime object to a timestamp in the following manner.

from datetime import datetime

# getting the current date and time
current_time = datetime.now()

# converting to epoch
time_stamp = datetime.timestamp(current_time)
print("Date in time stamp format is:", time_stamp)

We get the output:

What have we learned?

  • What is the use of the time module?
  • What is epoch?
  • What does the gtime() function return?
  • What is DST?
  • How can we convert a timestamp to a datetime object?
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments