Tengo un código que calcula una fecha y hora dada de la siguiente manera
time = datetime.datetime.now() - datetime.timedelta(minutes=60) Luego uso el time para configurar un campo en un objeto de offer para que se guarde en la base de datos. offer.time es una instancia del modelo de Offer ; está configurado para ser:
time = models.DateTimeField(blank=True, null=True) Sucede, sin embargo, que offer.time se actualiza al llamar a offer.save() . Al configurar offer.time = time , obtengo 2017-04-29 09:36:14.895581 . Después de llamar a offer.save , offer.time es 2017-04-29 09:36:14.895000 . ¿Por qué save() no conserva la hora original?
¿Algunas ideas?
Gracias por adelantado.
https://docs.mongodb.com/manual/reference/method/Date/
Internamente, los objetos de fecha se almacenan como un número entero de 64 bits que representa la cantidad de milisegundos desde la época de Unix (1 de enero de 1970), lo que da como resultado un rango de fechas representable de aproximadamente 290 millones de años en el pasado y el futuro.
Esto explica por qué 2017-04-29 09:36:14.895581 se convierte en 2017-04-29 09:36:14.895000
2017-04-29 09:36:14 se almacenará como 1493458574000 dejando solo 3 decimales más para almacenar milisegundos. Al sumar milisegundos el valor será 1493458574895 . Cuando esto se vuelva a leer en DateTimeField , el valor será 2017-04-29 09:36:14.895000 .