Как работать с timezone в Python
Python
Senior
Без компании
Как работать с timezone в Python
Ответы
Для работы с часовыми поясами в Python используйте модуль `datetime` вместе с `pytz` или `zoneinfo` (в Python 3.9+).
**Пример с `pytz`:**
```
from datetime import datetime
import pytz
utc = pytz.UTC
now_utc = datetime.now(utc) # Текущее время в UTC
print(now_utc)
eastern = pytz.timezone('US/Eastern')
now_eastern = now_utc.astimezone(eastern) # Конвертация в другой пояс
print(now_eastern)
```
**Пример с `zoneinfo` (Python 3.9+):**
```
from datetime import datetime
from zoneinfo import ZoneInfo
utc = ZoneInfo("UTC")
now_utc = datetime.now(utc)
print(now_utc)
eastern = ZoneInfo("America/New_York")
now_eastern = now_utc.astimezone(eastern)
print(now_eastern)
```
**Важно:**
- Всегда храните время в UTC в базе данных.
- Конвертируйте в локальный пояс только при отображении.
- `pytz` требует `.localize()` для наивных datetime, `zoneinfo` — нет.
- Для новых проектов предпочтительнее `zoneinfo`, так как он встроен в Python.