Convert Python datetime object to string

Display date and time values in a column, as a datetime object, and as a string.

Written by Adam Pavlacka

Last published at: May 19th, 2022

There are multiple ways to display date and time values with Python, however not all of them are easy to read.

For example, when you collect a timestamp column from a DataFrame and save it as a Python variable, the value is stored as a datetime object. If you are not familiar with the datetime object format, it is not as easy to read as the common YYYY-MM-DD HH:MM:SS format.

If you wanted to print the date and time, or maybe use it for timestamp validation, you can convert the datetime object to a string. This automatically converts the datetime object into a common time format.

In this article, we show you how to display the timestamp as a column value, before converting it to a datetime object, and finally, a string value.

Display timestamp as a column value

To display the current timestamp as a column value, you should call current_timestamp().

This provides the date and time as of the moment it is called.

%python

from pyspark.sql.functions import *
display(spark.range(1).withColumn("date",current_timestamp()).select("date"))

Sample output:

Display current_timestamp as a column value

Assign timestamp to datetime object

Instead of displaying the date and time in a column, you can assign it to a variable.

%python

mydate = spark.range(1).withColumn("date",current_timestamp()).select("date").collect()[0][0]

Once this assignment is made, you can call the variable to display the stored date and time value as a datetime object.

%python

mydate

Sample output:

datetime.datetime(2021, 6, 25, 11, 0, 56, 813000)
Delete

Info

The date and time is current as of the moment it is assigned to the variable as a datetime object, but the datetime object value is static unless a new value is assigned.

Convert to string

You can convert the datetime object to a string by calling str() on the variable. Calling str() just converts the datetime object to a string. It does not update the value with the current date and time.

%python

str(mydate)

Sample output:

'2021-06-25 11:00:56.813000'