The datetime
module in Python provides classes for manipulating dates and times. It includes functions for both simple and complex date and time manipulations. This module allows you to create, format, and work with dates and times in an intuitive way.
Table of Contents
- Introduction
datetime
Classesdatetime.date
datetime.time
datetime.datetime
datetime.timedelta
datetime.tzinfo
datetime.timezone
- Common Operations
- Creating Dates and Times
- Formatting and Parsing Dates and Times
- Arithmetic with Dates and Times
- Timezone Handling
- Examples
- Current Date and Time
- Formatting Dates and Times
- Parsing Strings into Dates and Times
- Date and Time Arithmetic
- Timezone-Aware Dates and Times
- Real-World Use Case
- Conclusion
- References
Introduction
The Python datetime
module provides classes for manipulating dates and times. It includes functions for parsing and formatting dates, performing arithmetic on date and time objects, and working with time zones. Key classes include datetime
, date
, time
, and timedelta
, each offering various methods to handle date and time operations. This module is essential for applications requiring date and time manipulations.
datetime Classes
datetime.date
Represents a date (year, month, and day) in an idealized calendar, independent of any particular day.
from datetime import date
today = date.today()
print(today)
Output:
2024-07-27
datetime.time
Represents a time, independent of any particular day.
from datetime import time
current_time = time(14, 30, 45)
print(current_time)
Output:
14:30:45
datetime.datetime
Combines a date and a time. Attributes: year, month, day, hour, minute, second, microsecond, and tzinfo.
from datetime import datetime
now = datetime.now()
print(now)
Output:
2024-07-27 11:08:22.961065
datetime.timedelta
Represents the difference between two dates or times.
from datetime import timedelta
delta = timedelta(days=5, hours=3, minutes=10)
print(delta)
Output:
5 days, 3:10:00
datetime.tzinfo
An abstract base class for dealing with time zones.
datetime.timezone
A class that implements the tzinfo
abstract base class as a fixed offset from the UTC.
from datetime import timezone, timedelta
tz = timezone(timedelta(hours=5, minutes=30))
print(tz)
Output:
UTC+05:30
Common Operations
Creating Dates and Times
Create specific dates, times, and datetime objects.
from datetime import date, time, datetime
specific_date = date(2024, 7, 25)
specific_time = time(14, 30, 45)
specific_datetime = datetime(2024, 7, 25, 14, 30, 45)
print(specific_date, specific_time, specific_datetime)
Output:
2024-07-25 14:30:45 2024-07-25 14:30:45
Formatting and Parsing Dates and Times
Format dates and times using strftime
and parse strings into dates and times using strptime
.
from datetime import datetime
now = datetime.now()
formatted = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted)
parsed = datetime.strptime("2024-07-25 14:30:45", "%Y-%m-%d %H:%M:%S")
print(parsed)
Output:
2024-07-27 11:08:23
2024-07-25 14:30:45
Arithmetic with Dates and Times
Add and subtract timedelta
objects to perform date and time arithmetic.
from datetime import datetime, timedelta
now = datetime.now()
future = now + timedelta(days=10)
past = now - timedelta(days=10)
print(future, past)
Output:
2024-08-06 11:08:23.216066 2024-07-17 11:08:23.216066
Timezone Handling
Work with timezone-aware dates and times.
from datetime import datetime, timezone, timedelta
now_utc = datetime.now(timezone.utc)
print(now_utc)
local_tz = timezone(timedelta(hours=5, minutes=30))
now_local = now_utc.astimezone(local_tz)
print(now_local)
Output:
2024-07-27 05:38:23.263065+00:00
2024-07-27 11:08:23.263065+05:30
Examples
Current Date and Time
Get the current date and time.
from datetime import datetime
now = datetime.now()
print(now)
Output:
2024-07-27 11:08:23.306067
Formatting Dates and Times
Format the current date and time.
from datetime import datetime
now = datetime.now()
formatted = now.strftime("%A, %B %d, %Y %I:%M%p")
print(formatted)
Output:
Saturday, July 27, 2024 11:08AM
Parsing Strings into Dates and Times
Parse a string into a datetime object.
from datetime import datetime
date_string = "2024-07-25 14:30:45"
parsed_date = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print(parsed_date)
Output:
2024-07-25 14:30:45
Date and Time Arithmetic
Perform arithmetic with dates and times.
from datetime import datetime, timedelta
now = datetime.now()
next_week = now + timedelta(weeks=1)
last_week = now - timedelta(weeks=1)
print(next_week, last_week)
Output:
2024-08-03 11:08:23.460065 2024-07-20 11:08:23.460065
Timezone-Aware Dates and Times
Work with timezone-aware datetime objects.
from datetime import datetime, timezone, timedelta
now_utc = datetime.now(timezone.utc)
print(now_utc)
local_tz = timezone(timedelta(hours=5, minutes=30))
now_local = now_utc.astimezone(local_tz)
print(now_local)
Output:
2024-07-27 05:38:23.501065+00:00
2024-07-27 11:08:23.501065+05:30
Real-World Use Case
Scheduling Future Events
Suppose you are building a scheduling application and need to calculate the date and time for future events.
from datetime import datetime, timedelta
def schedule_event(start_date, days_until_event):
event_date = start_date + timedelta(days=days_until_event)
return event_date
start_date = datetime(2024, 7, 25, 14, 30)
event_date = schedule_event(start_date, 30)
print(f"Event Date: {event_date}")
Output:
Event Date: 2024-08-24 14:30:00
Conclusion
The datetime
module in Python provides a robust set of tools for working with dates and times. Whether you need to create specific dates, format them for display, parse strings into dates, perform arithmetic, or handle timezones, the datetime
module has you covered. By leveraging these capabilities, you can effectively manage and manipulate date and time data in your applications.