Python Datetime

Working with dates and times in Python using the datetime module.

Current Date & Time

from datetime import datetime, date, time

# Current datetime
now = datetime.now()  # 2025-12-17 11:50:30.123456
today = date.today()  # 2025-12-17

# Get components
now.year  # 2025
now.month  # 12
now.day  # 17
now.hour  # 11
now.minute  # 50
now.second  # 30

Create Datetime

# Create specific date
dt = datetime(2025, 12, 17, 11, 50, 30)
d = date(2025, 12, 17)
t = time(11, 50, 30)

# Combine date and time
dt = datetime.combine(d, t)

# From timestamp
dt = datetime.fromtimestamp(1734435030)  # Unix timestamp

Format & Parse

# Format datetime to string
now = datetime.now()
now.strftime('%Y-%m-%d')  # 2025-12-17
now.strftime('%H:%M:%S')  # 11:50:30
now.strftime('%B %d, %Y')  # December 17, 2025
now.strftime('%A')  # Wednesday

# Parse string to datetime
dt = datetime.strptime('2025-12-17', '%Y-%m-%d')
dt = datetime.strptime('17/12/2025 11:50', '%d/%m/%Y %H:%M')

Date Arithmetic

from datetime import timedelta

# Add/subtract time
now = datetime.now()
tomorrow = now + timedelta(days=1)
next_week = now + timedelta(weeks=1)
yesterday = now - timedelta(days=1)

# Time difference
dt1 = datetime(2025, 12, 17)
dt2 = datetime(2025, 12, 1)
diff = dt1 - dt2
diff.days  # 16
diff.total_seconds()  # 1382400.0

Common Formats

# Format codes
%Y  # Year with century (2025)
%y  # Year without century (25)
%m  # Month as number (01-12)
%B  # Month full name (December)
%b  # Month abbreviation (Dec)
%d  # Day of month (01-31)
%A  # Weekday full (Wednesday)
%a  # Weekday abbr (Wed)
%H  # Hour 24h (00-23)
%I  # Hour 12h (01-12)
%M  # Minute (00-59)
%S  # Second (00-59)
%p  # AM/PM