Изменить часовой пояс для объекта Date Python
Здравствуйте, я использую Pythonany где и когда я звоню
from datetime import *
print date.today().day
Он печатает день, отличный от того, где я живу (Остин, Техас). Я подумал, что это потому, что есть разница часовых поясов. Как бы я сказал объект даты, где я живу, чтобы он получил правильный часовой пояс. заранее спасибо
2 ответа
Самый надежный способ сделать это - использовать pytz
, Вы можете установить его просто с pip install pytz
,
Чтобы получить местную дату с pytz
Вы можете просто сделать это (обратите внимание, что date.today
метод не займет часовой пояс):
>>> from datetime import datetime
>>> import pytz
>>> local_date = datetime.now(pytz.timezone('US/Central')) # use datetime here
>>> local_date.date() # now call date method
datetime.date(2014, 11, 30)
Сравните это с нынешней датой Гринвича:
>>> greenwich_date = datetime.now(pytz.timezone('Etc/Greenwich'))
>>> greenwich_date.date()
datetime.date(2014, 12, 1)
В стандартной библиотеке нет кроссплатформенного способа создания часовых поясов без создания собственного класса часовых поясов. В библиотеке pytz имеется актуальная база данных большинства часовых поясов. Поэтому вы можете сделать:
import pytz
from datetime import datetime
datetime.now(pytz.utc)
.utc
по умолчанию дает вам локализованный часовой пояс, но вы можете явно указать другой часовой пояс, используя .timezone()
метод.