Почему мои два поля даты не идентичны, когда я их копирую? - PullRequest
2 голосов
/ 27 апреля 2010

Я использую django, и у меня есть две модели с моделью. 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?

Edit:

Я сделал ошибку, упрощая код, который использовал. Следующий код повторяет странности:

>>>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

Как предположил Петриборг, разница во времени вызвана сохранением в базе данных:

>>>print myobject_retrieved_from_db.date
>>>2010-04-27 12:10:43

Тайна раскрыта.

1 Ответ

3 голосов
/ 27 апреля 2010

Какую версию 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

Вы храните datetime в сторонней структуре, такой как sqldb через django? Структура времени обычно имеет вид {int секунд; int fraal_seconds; } или в виде длинных миллисекунд, поэтому может случиться так, что вторая часть будет отброшена либо по структуре, либо из-за приведения вниз ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...