How to Convert Epoch Time to Date Time in Python

5/5 - (6 votes)

Problem Formulation and Solution Overview

In this article, you’ll learn how to convert Epoch Time to a Date Time representation using Python.

On January 1st, 1970, Epoch Time, aka Time 0 for UNIX systems, started as a date in history to remember. This date is relevant, not only due to this event but because it redefined how dates are calculated!

To make it more fun, we will calculate the time elapsed in Epoch Time from its inception on January 1, 1970, to January 1, 1985, when the first mobile phone call was made in Britain by Ernie Wise to Vodafone. This will then be converted to a Date Time representation.


💬 Question: How would we write code to convert an Epoch Date to a Date Time representation?

We can accomplish this task by one of the following options:


Method 1: Use fromtimestamp()

This method imports the datetime library and calls the associated datetime.fromtimestamp() function to convert Epoch Time into a Local Date Time representation.

To run this code error-free, install the required library. Click here for installation instructions.

import datetime

epoch_time = 473398200
date_conv = datetime.datetime.fromtimestamp(epoch_time)
print(date_conv.strftime('%d-%m-%Y'))

Above, imports the datetime library. This allows the conversion of an Epoch Time integer to a readable Local Date Time format.

The following line declares an Epoch Time integer and saves it to epoch_time.

Next, the highlighted line converts the Epoch Time into a Local Date Time representation and saves it to date_conv. If output to the terminal at this point, it would display as follows:

1985-01-01 00:00:00

Finally, date_conv converts into a string using strftime() and outputs the formatted date to the terminal.

01-01-1985

Method 2: Use time.localtime()

This method imports the time library and calls the associated time.localtime() function to convert Epoch Time into a Local Date Time representation.

import time

epoch_time = 473398200
date_conv = time.localtime(epoch_time)
print(date_conv)

Above, imports the time library. This allows the conversion of an Epoch Time to a readable Local Date Time format.

The following line declares an Epoch Time integer and saves it to epoch_time.

Next, the highlighted line converts the Epoch Time into a Local Date Time representation and saves it to date_conv as a Tuple as shown below:

time.struct_time(tm_year=1985, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=1, tm_isdst=0)

The appropriate elements will need to be accessed to format a date or time. For this example, we will construct the date.

print(f'0{date_conv[1]}-0{date_conv[2]}-{date_conv[0]}')

The output is as follows:

01-01-1985
The Ultimate Guide to Python Tuples | Intro and Theoretical Basics | Part 1/7

Method 3: Use datetime.utcfromtimestamp

This method imports the datetime library and calls the associated datetime.utcfromtimestamp() function to convert an Epoch Time into a UTC Date Time representation.

To run this code error-free, install the required library. Click here for installation instructions.

import datetime

epoch_time = 473398200
date_conv = datetime.datetime.utcfromtimestamp(epoch_time).strftime('%Y-%m-%d %H:%M:%S')
print(date_conv)

Above, imports the datetime library. This allows the conversion of an Epoch Time integer to a readable UTC Date Time format.

The following line declares an Epoch Time integer and saves it to epoch_time.

Next, the highlighted line accomplishes the following:

The output is sent to the terminal.

1985-01-01 03:30:00

💡Note: Universal Time (UTC) is the primary standard 24-hour time clock by which the World regulates clocks and time.

Python Date and Time - A Simple Overview

Method 4: Use time.localtime() and time.strftime()

This method imports the time library in conjunction with the time.localtime()and time.strftime() functions to convert Epoch Time into a Local Date Time representation.

import time

epoch_time = 473398200
date_conv = time.strftime('%c', time.localtime(epoch_time))
print('Formatted Date:', date_conv)

Above, imports the time library. This allows the conversion of an Epoch Time to a readable Local Date Time format.

The following line declares an Epoch Time integer and saves it to epoch_time.

Next, the highlighted line converts the Epoch Time into a Local Date Time representation, converts to a string (strftime()) format and saves it to date_conv.

The output is sent to the terminal.

Formatted Date: Tue Jan 1 00:00:00 1985

Summary

These four (4) methods of converting an Epoch Time to a Date Time representation should give you enough information to select the best one for your coding requirements.

Good Luck & Happy Coding!


Programmer Humor – Blockchain

“Blockchains are like grappling hooks, in that it’s extremely cool when you encounter a problem for which they’re the right solution, but it happens way too rarely in real life.” source xkcd