Избегай наивных datetime-объектов — всегда используй те, что учитывают часовой пояс.
Работай с ними в UTC, а пользователю показывай только в его локальной таймзоне.
import datetime
from zoneinfo import ZoneInfo
# BAD
now = datetime.datetime.now()
print(now.isoformat())
# 2025-10-21T15:03:07.332217
# GOOD
now = datetime.datetime.now(tz=ZoneInfo("UTC"))
print(now.isoformat())
# 2025-10-21T12:04:22.573590+00:00
print(now.astimezone().isoformat())
# 2025-10-21T15:04:22.573590+03:00
👉 @PythonPortal
