import datetime
import pytz # install from pip
US_PACIFIC_TIMEZONE = pytz.timezone("US/Pacific")
dt = datetime.datetime.utcnow().replace(tzinfo=US_PACIFIC_TIMEZONE)
print(dt == dt.replace(tzinfo=US_PACIFIC_TIMEZONE)) # True
dt = datetime.datetime.now(tz=US_PACIFIC_TIMEZONE)
print(dt == dt.replace(tzinfo=US_PACIFIC_TIMEZONE)) # False
Так выглядит datetime.datetime.now(tz=..)
не установлен в часовом поясе указываю ...озадачивает часовой пояс Поведение
Похоже, часовой пояс устанавливается при использовании datetime.now
, но он выключен по часовой зоне.
Почему это?
Используйте 'localize', а не' replace'. Прочитайте [pytz docs] (http://pythonhosted.org/pytz). –
@MattJohnson: '.now (tz)' работает как есть. Вы не должны использовать 'tz.localize (.now())' здесь, даже если локальный часовой пояс - 'US/Pacific'' (последний не работает во время переходов в конце DST, а первый работает без проблем даже для неоднозначные местные времена). – jfs
@ J.F.Sebastian - Да, согласился на случай «сейчас». Я говорил вообще. Благодарю. –