为什么我复制的两个日期字段不相同?
我在使用Django框架,有两个模型里有一个叫做models.DateTimeField()的字段。有时候我需要复制一个日期,但你看这个:
>>>myobject.date = datetime.datetime.now()
>>>print myobject.date
>>>2010-04-27 12:10:43.526277
>>>other_object.date_copy = myobject.date
>>>print other_object.date_copy
>>>2010-04-27 12:10:43
为什么这两个日期不一样?我该怎么才能准确复制myobject.date呢?
补充:
我之前简化了我用的代码,实际上是这样的:
>>>myobject.date = datetime.datetime.now()
>>>print myobject.date
>>>2010-04-27 12:10:43.526277
>>>myobject.save()
>>>myobject_retrieved_from_db = Myobject.objects.get(id=myobject.id)
>>>other_object.date_copy = myobject_retrieved_from_db.date
>>>print other_object.date_copy
>>>2010-04-27 12:10:43
正如Petriborg所说,时间差异是因为存储到数据库时造成的:
>>>print myobject_retrieved_from_db.date
>>>2010-04-27 12:10:43
谜团解开了。
1 个回答
3
你正在使用哪个版本的Python?
对我来说似乎没问题...
In [3]: s = datetime.datetime.now()
In [4]: x = s
In [5]: print s
------> print(s)
2010-04-27 06:37:02.303067
In [6]: print x
------> print(x)
2010-04-27 06:37:02.303067
你是在通过Django把日期时间存储到像sqldb这样的第三方结构里吗?时间结构通常是这样的:{ 整数秒数; 整数毫秒数; },或者是以长整型表示的毫秒。所以可能是因为结构的问题,或者是类型转换时丢失了秒的部分...