Introduction
The datetime module provides classes for manipulating dates and times.
Creating Dates and Times
from datetime import datetime, date, time, timedelta
# Current datetime
now = datetime.now()
today = date.today()
# Specific datetime
dt = datetime(2024, 6, 15, 10, 30, 0)
d = date(2024, 6, 15)
t = time(10, 30, 0)
# Parse from string
dt = datetime.strptime("2024-06-15 10:30", "%Y-%m-%d %H:%M")
DateTime Operations
# Formatting
formatted = dt.strftime("%Y-%m-%d %H:%M:%S")
formatted = dt.strftime("%B %d, %Y") # June 15, 2024
# Extract components
print(dt.year, dt.month, dt.day)
print(dt.hour, dt.minute, dt.second)
# Timestamps
timestamp = dt.timestamp()
dt_from_ts = datetime.fromtimestamp(timestamp)
Time Deltas
# Time difference
delta = datetime(2024, 6, 20) - datetime(2024, 6, 15)
print(delta.days) # 5
# Adding/subtracting time
future = dt + timedelta(days=30, hours=2)
past = dt - timedelta(weeks=1)
Practice Problems
- Calculate days between two dates
- Format dates in different styles
- Add business days to a date
- Parse various date formats
- Calculate age from birthdate