Как добавить часовой пояс к объекту datetime.datetime?
У меня есть datetime.datetime
объект (datetime.datetime(2014, 4, 11, 18, 0)
) и я хотел бы назначить ему часовой пояс, используя pytz
, Я знаю, что вы можете использовать pytz
с datetime.datetime.now()
объект (datetime.datetime.now(pytz.timezone('America/Los_Angeles'))
) но как бы я сделал это с пользовательским объектом?
2 ответа
Использовать localize
метод:
import pytz
import datetime
la = pytz.timezone('America/Los_Angeles')
now = la.localize(datetime.datetime.now())
print(repr(now))
доходность
datetime.datetime(2014, 4, 11, 21, 36, 2, 981916, tzinfo=<DstTzInfo 'America/Los_Angeles' PDT-1 day, 17:00:00 DST>)
localize
используется для интерпретации неустановленных часовых поясов по отношению к часовому поясу. Результатом является дата-время с учетом часового пояса. Обратите внимание, что некоторые временные зоны, не зависящие от часовых поясов, такие как datetime(2002, 10, 27, 1, 30, 00)
Двусмысленны в определенных часовых поясах. Использовать is_dst
параметр, чтобы избежать двусмысленности.
astimezone
используется для конвертации данных о времени в другие часовые пояса.
Кроме того, вы можете назначить часовой пояс os.environ['TZ']
непосредственно.
import os
import datetime
print datetime.datetime.now()
os.environ['TZ'] = 'America/Los_Angeles'
print datetime.datetime.now()