Как сохранить наивную дату в Django 1.4

У меня есть наивная дата и время в формате «2012-05-19 19: 13: 00»; и нужно хранить его, используя Django 1.4 и его возможности с учетом часового пояса.

Хотя нет никакого способа узнать, в каком часовом поясе изначально находится дата, представляется целесообразным хранить ее так, как если бы она была в формате UTC.

Однако, используя pytz и т. Д., Я не уверен, как преобразовать дату без часового пояса в дату и время по UTC.

Ответы на вопрос(1)

Решение Вопроса

то, конечно, не может быть преобразования в UTC. Вместо этого вы можете просто превратить объект datetime в часовой пояс:

import datetime
from pytz import UTC

dt = datetime.datetime.now()  # just some date
tz_aware_dt = dt.replace(tzinfo=UTC)

Редактировать

The руководство по миграции для django 1.4 использует это для выполнения вышесказанного:

>>> from django.utils.dateparse import parse_datetime
>>> naive = parse_datetime("2012-02-21 10:28:45")
>>> import pytz
>>> pytz.timezone("Europe/Helsinki").localize(naive)
datetime.datetime(2012, 2, 21, 10, 28, 45, tzinfo=<DstTzInfo 'Europe/Helsinki' EET+2:00:00 STD>)

Вероятно, вам следует использовать эту версию, заменив «UTC» на «Европа / Хельсинки».

 Phil Gyford19 мая 2012 г., 23:54
Отлично, спасибо. Делатьpytz.UTC.localize(naive) кажется, добивается цели.

Ваш ответ на вопрос