Как добавить часовой пояс к объекту 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()
Другие вопросы по тегам