为什么我复制的两个日期字段不相同?

2 投票
1 回答
1516 浏览
提问于 2025-04-15 22:04

我在使用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这样的第三方结构里吗?时间结构通常是这样的:{ 整数秒数; 整数毫秒数; },或者是以长整型表示的毫秒。所以可能是因为结构的问题,或者是类型转换时丢失了秒的部分...

撰写回答