- OS version and name: linux docker container (python3.10-slim) running on a mac
- Pendulum version: 3.0.0
Issue
This appears to be a bug in ZoneInfo that moved into pendulum in the 3.0 release now that TimeZone subclasses ZoneInfo.
Simple repro:
In a Docker container:
FROM python:3.10-slim
RUN pip install pendulum
RUN echo "Asia/Shanghai" > /etc/timezone
Then in Python:
import pendulum, datetime
pendulum.UTC.utcoffset(datetime.datetime(2024, 3, 12, 0, 0, 0, 0)))
outputs datetime.timedelta(seconds=28800) (the utcoffset of the timezone in /etc/timezone) instead of the expected None return value for UTC.
This breaks all kinds of things.
The same issue happens with a ZoneInfo object:
datetime.timedelta(seconds=28800)
See https://stackoverflow.com/questions/74467999/why-does-zoneinfoutc-do-different-time-conversions-from-timezone-utc for a similar report on ZoneInfo.