Python provides powerful tools for working with dates and times through the built-in datetime module. This module allows you to:
Learn Python Programming and become a certified software developer
Let’s break it down.
import datetime You can also import specific classes:
Learn Python Programming Online
from datetime import date, time, datetime, timedelta The date class represents a calendar date (year, month, day).
from datetime import date
d = date(2025, 12, 1)
print(d) # 2025-12-01 today = date.today()
print(today) # Example: 2025-12-01 print(today.year)
print(today.month)
print(today.day) The time class represents a time of day (without date).
from datetime import time
t = time(14, 30, 45)
print(t) # 14:30:45 print(t.hour)
print(t.minute)
print(t.second)
print(t.microsecond) The datetime class combines both date + time.
from datetime import datetime
dt = datetime(2025, 12, 1, 14, 30, 45)
print(dt) now = datetime.now()
print(now) utc_now = datetime.utcnow()
print(utc_now) Use .strftime() to convert a date/time object into a formatted string.
%Y → Year%m → Month%d → Day%H → Hour%M → Minute%S → Second%A → Day namenow = datetime.now()
formatted = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted) Use .strptime() to convert a string into a datetime object.
from datetime import datetime
date_string = "2025-12-01 14:30:45"
parsed = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print(parsed) Python uses timedelta for arithmetic.
from datetime import timedelta
future = today + timedelta(days=10)
print(future) past = today - timedelta(days=7)
print(past) d1 = date(2025, 1, 1)
d2 = date(2025, 12, 1)
diff = d2 - d1
print(diff.days) # number of days Python 3.9+ uses zoneinfo for timezone support.
from datetime import datetime
from zoneinfo import ZoneInfo
lagos_time = datetime.now(ZoneInfo("Africa/Lagos"))
print(lagos_time)
new_york_time = datetime.now(ZoneInfo("America/New_York"))
print(new_york_time)
dt = datetime(2025, 12, 1, 14, 0, tzinfo=ZoneInfo("Africa/Lagos"))
converted = dt.astimezone(ZoneInfo("America/New_York"))
print(converted) Sometimes you need delays (not part of datetime).
import time
time.sleep(2) # pause for 2 seconds datetime for timestampszoneinfo instead of old pytz.strftime() and .strptime() for formatting/parsingtimedelta for safe arithmeticLatest tech news and coding tips.
Every application that stores and manages data relies on a set of basic operations known…
PHP remains one of the most widely used server-side programming languages, powering platforms such as…
Danfo.js is an open-source JavaScript library designed for data manipulation, analysis, and machine learning. It provides…
JavaScript's async and await keywords revolutionized asynchronous programming by making asynchronous code look and behave more like synchronous code.…
Pretty Good Privacy (PGP) is one of the most widely used encryption systems for securing emails,…
Database migration is one of the most challenging tasks in software engineering. While both PostgreSQL…