Это означает, что часовой пояс наивен, поэтому вы не можете использовать его с datetime.astimezone
Вы можете указать часовой пояс, подобный этому
import pytz # 3rd party: $ pip install pytz
u = datetime.utcnow()
u = u.replace(tzinfo=pytz.utc) #NOTE: it works only with a fixed utc offset
теперь вы можете менять часовые пояса
print(u.astimezone(pytz.timezone("America/New_York")))
Чтобы получить текущее время в заданном часовом поясе, вы можете передать tzinfo datetime.now()
напрямую:
#!/usr/bin/env python
from datetime import datetime
import pytz # $ pip install pytz
print(datetime.now(pytz.timezone("America/New_York")))
Он работает для любого часового пояса, включая те, которые соблюдают переход на летнее время (DST), т. Е. Он работает для часовых поясов, которые могут иметь разные смещения utc в разное время (нефиксированное смещение utc). Не используйте tz.localize(datetime.now())
- может произойти сбой во время перехода в конец летнего времени, когда местное время неоднозначно.