DateTimeField中的Django和微秒差异

时间:2017-04-29 16:59:40

标签: python django mongodb django-models

我有一个代码,用于计算给定的日期时间,如下所示

time = datetime.datetime.now() - datetime.timedelta(minutes=60)

然后我使用time设置要保存在数据库中的offer对象中的字段。 offer.timeOffer模型实例;它被配置为:

time = models.DateTimeField(blank=True, null=True) 

但是,调用offer.save()时会更新offer.time。设置offer.time = time时,我得到2017-04-29 09:36:14.895581。致电offer.save后,offer.time2017-04-29 09:36:14.895000。为什么save()不保留原始时间?

有什么想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

https://docs.mongodb.com/manual/reference/method/Date/

  

在内部,Date对象存储为64位整数表示   自Unix纪元(1970年1月1日)以来的毫秒数   导致可表示的日期范围约为2.9亿年   过去和未来。

这解释了2017-04-29 09:36:14.895581成为2017-04-29 09:36:14.895000

的原因

2017-04-29 09:36:14将存储为1493458574000,只留下3个小数来存储毫秒数。添加毫秒时,该值将为1493458574895。将其读回DateTimeField后,该值将为2017-04-29 09:36:14.895000