pb pbaumgarten.com
Courses Python Reference Datetime
Login
Course
Python Reference
Topic
Python Fundamentals
Python Reference

Datetime

Dates and times

Use the datetime library to work with dates and times in Python.

Import the library to get started...

from datetime import datetime

To create a datetime object for a given date and time. * Example date & time: 29 July 2021, 7:08pm.

# -- Method 1 -- Create from integers
d = datetime(2021, 7, 29, 19, 8, 0)

# -- Method 2 -- Create from parsing a string
d = datetime.strptime("29/07/2021 19:08:00", "%d/%m/%Y %H:%M:%S")

To create a datetime object for the current time

now1 = datetime.now()               # Local time
now2 = datetime.utcnow()            # UTC time

Creating strings to display dates and times

s1 = d.strftime("%A %d %B, %Y")     # Thursday 29 July, 2021
s2 = d.strftime("%I:%M %p")         # 7:08 pm
print(s1, s2)

Computers commonly use midnight 1 January 1970 as an "epoch" (beginning point) for time calculations. If you are working with time or date information generated by other programs, you may have to convert to/from this format. It is an integer that is the number of seconds that have elapsed since that moment, 1/1/1970 00:00:00 UTC.

Convert to/from an epoch timestamp

timestamp = datetime.timestamp(my_date)       # 1627556880.0
my_date = datetime.fromtimestamp(timestamp)

# Get current epoch timestamp - Method 1
timestamp = datetime.now().timestamp()        # 1625564993.5

# Get current epoch timestamp - Method 2 -- using time library
import time
timestamp = time.time()                       # 1625564993.5

To find the difference between two dates, import timedelta as well.

from datetime import datetime, timedelta

# Difference between two dates
past_date  = datetime(1969, 7, 20, 20, 17, 40)
difference = datetime.now() - past_date
print( difference.days )

# What is/was the date 1000 days from now?
now = datetime.now()
past_date = now - timedelta(days=1000)  
future_date = now + timedelta(days=1000)

Codes for datetime strings

  • These are the codes to parse date strings when using strptime() and strftime()
%a   Thu       day
%A   Thursday  day
%d   29        day number
%m   07        month
%b   Jul       month
%B   July      month
%y   21        year
%Y   2021      year
%I   7         hour 12h
%H   19        hour 24h
%M   08        minute
%S   00        second
%p   PM        AM/PM