Pensé que Django creó columnas de fecha y hora que eran independientes de la zona horaria, pero cuando miré en mi tabla de Postgres, vi que los valores registrados allí tenían información de zona horaria.¿Por qué Django crea columnas de marca de hora Postgres con zonas horarias?
Yendo más lejos, encontré que el backend de Postgres ordena a Django crear columnas que usen zonas horarias.
De Django/db/backend/PostgreSQL/creation.py:
data_types = {
...
'DateTimeField': 'timestamp with time zone',
...
El esquema muestra que la columna creada se especifica como "marca de tiempo con la zona horaria".
CREATE TABLE notification_notice
(
...
created timestamp with time zone NOT NULL,
...
El registro de Postgres muestra la declaración de actualización que se envió. Django construyó una declaración de SQL que usaba UTC como la zona horaria según lo ordenado por mi archivo de configuración de Django.
UPDATE "notification_notice" SET "sender_id" = 1, "group_id" = NULL, "notice_type_id" = 1, "content_type_id" = 21, "object_id" = 3, "created" = E'2011-11-11 22:31:08.022148' WHERE "notification_notice"."id" = 14
Así es como se ve mi mesa. La columna creada tiene un timestame que tiene "-08" para su zona horaria. Postgres debe inspeccionar el huso horario del reloj de mi sistema para encontrar la zona horaria.
my_db=# select * from notification_notice limit 1;
id | sender_id | group_id | notice_type_id | content_type_id | object_id | created | last_interaction_time
----+-----------+----------+----------------+-----------------+-----------+------------------------------+-----------------------
1 | | 3 | 21 | 53 | 6 | 2011-11-11 14:31:02.98882-08 |
(1 row)
Preguntas:
no Django tener una política de manos fuera de las zonas de tiempo?
¿Por qué el back-end de Postgres usa zonas horarias para los modelos.DateTimeField? ¿Esto es requerido por Postgres?
¿Hay alguna manera de forzar a Django a crear columnas de indicación de fecha y hora en Postgres que no utilizan la zona horaria?
Posible respuesta: [aquí] (http://stackoverflow.com/questions/1869419/django-datetime-field-to-generate-timestamp-fields-without-timezone/1869568#1869568) – unutbu