Так у меня есть следующие данные, которые я хочу сохранить, который начинается в следующем формате:PostGreSQL запись DateTimes неправильно с Django
2015-07-26T17:00:00-0700
В одном из взглядов моего заявления я беру вышеупомянутое время, используя parser
:
from dateutil import parser
date = parser.parse('2015-07-26T17:00:00-0700')
Это возвращает:
2015-07-26 17:00:00-07:00
идея была чтобы сделать его объектом DateTime. После этого я сохранить его в моем datebase так:
d = Events(name=event["name"],
location=event["location"],
description=event["description"],
event_time=date,
end_time=event.get("end_time", 'None'),
eventimage_url=event["cover"]["source"])
d.save()
Тогда, когда я запрос к базе данных
event_list = Events.objects.all()
print event_list[0].event_time ## There is only one record in the database
я получаю следующее:
2015-07-27 00:00:00+00:00
Похоже Postgresql округляет вверх время в моей базе данных, и я не хочу, чтобы это делалось.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'MY_APPLICATION',
'USER': 'MY_NAME',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '',
}
}
Вот операторы, используемые для создания моей базы данных:
BEGIN;
CREATE TABLE "App_events" ("id" serial NOT NULL PRIMARY KEY, "name" varchar(128) NOT NULL, "location" varchar(128) NOT NULL, "description" varchar(10000) NOT NULL, "event_time" timestamp with time zone NOT NULL, "end_time" varchar(128) NOT NULL, "eventimage_url" varchar(300) NOT NULL);
COMMIT;
И это, как моя модель предназначена:
class Events(models.Model):
name = models.CharField(max_length=128)
location = models.CharField(max_length=128)
description = models.CharField(max_length=10000)
event_time = models.DateTimeField()
end_time = models.CharField(max_length=128)
eventimage_url = models.CharField(max_length=300)
Кто знает, как это исправить?
Это не округление. Он конвертируется в UTC. – Kevin