Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 415
Open
Description
import pendulum # pendulum==3.0.0 # Python 3.10.7 # Step 1 : start the day before spring forward dst day >>> dt = pendulum.datetime(2025, 9, 6, 0, 0, tz="Chile/Continental") >>> print("Start:", dt) Start: 2025-09-06 00:00:00-04:00 >>> print(dt.add(days=1)) 2025-09-07 01:00:00-03:00 # since no midnight in chilean tz # Step 2: Add 1 day and normalize to start_of_day >>> dt_plus1 = dt.add(days=1).start_of("day") >>> print("After 1 day:", dt_plus1) After 1 day: 2025-09-06 23:00:00-04:00 # Step 3: Check if it's truly start of day >>> print("Is start of day?", dt_plus1 == dt_plus1.start_of("day")) Is start of day? False # Step 4: Add another day and normalize again >>> dt_plus2 = dt_plus1.add(days=1).start_of("day") >>> print("After 2 days:", dt_plus2) After 2 days: 2025-09-07 01:00:00-03:00 # BUT Same concept works for CET correctly # Step 1: Start one day before spring forward day (but spring forward at 2am not midnight!) >>> dt = pendulum.datetime(2025, 3, 29, 0, 0, tz="Europe/Vienna") >>> print("Start:", dt) Start: 2025-03-29 00:00:00+01:00 >>> print(dt.add(days=1)) 2025-03-30 00:00:00+01:00 # Step 2: Add 1 day and normalize to start_of_day >>> dt_plus1 = dt.add(days=1).start_of("day") >>> print("After 1 day:", dt_plus1) After 1 day: 2025-03-30 00:00:00+01:00 # Step 3: Check if it's truly start of day >>> print("Is start of day?", dt_plus1 == dt_plus1.start_of("day")) Is start of day? True # Step 4: Add another day and normalize again >>> dt_plus2 = dt_plus1.add(days=1).start_of("day") >>> print("After 2 days:", dt_plus2) After 2 days: 2025-03-31 00:00:00+02:00 Metadata
Metadata
Assignees
Labels
No labels