from datetime import datetime
try:
dt = datetime(2020, 3, 31)
dt = dt.replace(month=4)
print(dt)
except ValueError as my_msg:
print("This is a ValueError")
print(my_msg)
Output is here
This is a ValueError
day is out of range for month
Example 1: Adjusting Time While Keeping the Date Constant
from datetime import datetime
# Original datetime object
original_dt = datetime(2025, 2, 8, 15, 30, 45)
print("Original datetime:", original_dt)
# Replace hour, minute, and second
new_dt = original_dt.replace(hour=10, minute=0, second=0)
print("Updated datetime:", new_dt)
Output
Original datetime: 2025-02-08 15:30:45
Updated datetime: 2025-02-08 10:00:00
Example 2: Setting a Specific Date for Recurring Events
from datetime import datetime
# Original datetime object
original_dt = datetime(2025, 2, 8, 15, 30, 45)
print("Original datetime:", original_dt)
# Replace day to 15th
event_dt = original_dt.replace(day=15)
print("Event datetime:", event_dt)
Output
Original datetime: 2025-02-08 15:30:45
Event datetime: 2025-02-15 15:30:45
Example 3: Handling End-of-Month Dates
from datetime import datetime
# Original datetime object on March 31st
original_dt = datetime(2025, 3, 31)
print("Original datetime:", original_dt)
# Attempt to replace month to Februarytry:
new_dt = original_dt.replace(month=2)
print("Updated datetime:", new_dt)
except ValueError as e:
print("Error:", e)
Output
Original datetime: 2025-03-31 00:00:00
Error: day is out of range for month
Example 4: Creating a Series of Dates with Modified Attributes
from datetime import datetime, timedelta
# Original datetime object
start_dt = datetime(2025, 1, 1)
print("Start datetime:", start_dt)
# Generate dates with the same time on consecutive days
dates = [start_dt.replace(day=day) for day in range(1, 6)]
for dt in dates:
print(dt)