Изменить часовой пояс для объекта 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() метод.

Другие вопросы по тегам