Напоминалки: конвертация между часовыми поясами (reminders.py)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Kenik
2026-09-05 14:37:26 +03:00
parent 5efc0aca8d
commit 40cfcbd45f
2 changed files with 39 additions and 1 deletions
+14
View File
@@ -63,3 +63,17 @@ def compute_next_occurrence(anchor: datetime, recurrence: str, after: datetime)
day = _clamp_day(year, anchor.month, anchor.day)
candidate = candidate.replace(year=year, day=day)
return candidate
def server_utc_offset_hours() -> float:
"""Собственное смещение сервера от UTC в часах. Часовой пояс сервера нигде
явно не настроен (может быть любым в зависимости от хостинга), поэтому
вычисляется на лету через локальную таймзону ОС."""
offset = datetime.now().astimezone().utcoffset()
return offset.total_seconds() / 3600 if offset else 0.0
def convert_time(dt: datetime, from_offset: float, to_offset: float) -> datetime:
"""Переводит наивный datetime из одного часового пояса (смещение от UTC
в часах) в другой — просто сдвигает время на разницу смещений."""
return dt + timedelta(hours=(to_offset - from_offset))