python - DateTimeField recibió un datetime ingenuo
mysql django (3)
Además de la respuesta de falsetru, si ya se ha creado la fecha y hora, puede convertirla a la zona horaria:
from django.utils import timezone
my_datetime = timezone.make_aware(my_datetime, timezone.get_current_timezone())
Tengo modelo con la columna DateTimeField .
Intento insertar una fila con el valor de current_time de la base de datos directamente en la tabla por consulta de SQL.
Mi consulta SQL para la base de datos MySQL como:
INSERT INTO MyTable (..., my_datetime, ...) VALUES (..., current_time, ...)
Y obten:
RuntimeWarning: DateTimeField ModelName.field_name recibió una fecha de datación ingenua (2014-01-09 22:16:23) mientras el soporte de zona horaria está activo.
¿Cómo insertar la hora actual directamente en la tabla por consulta SQL sin previo aviso?
También puede pytz
zona horaria de fecha y hora con la localize
desde pytz
, como se explica here .
UTC:
import pytz
dt_aware = pytz.utc.localize(dt_naive)
Cualquier otra zona horaria:
import pytz
tz = ''Europe/Berlin'' #or whaterver timezone you want
dt_aware = pytz.timezone(tz).localize(dt_naive)
Y here la lista de zonas horarias.
Utilice django.utils.timezone.now
lugar de datetime.datetime.now
.
from django.utils import timezone
current_time = timezone.now()