【问题标题】:Assigning datetime to models.DateTimeField seems to drop the time将日期时间分配给 models.DateTimeField 似乎会减少时间
【发布时间】:2012-04-04 20:04:25
【问题描述】:

我正在编写一个单元测试,并注意到我无法在不丢失时间详细信息的情况下将日期时间对象分配给 models.DateTimeField。即:

class Foo(models.Model):
    created = models.DateTimeField(
        editable=False)

my_time = datetime(2012, 01, 02, 1)
print "My Time", Foo.objects.create(created=my_time).created

打印:

我的时间 2012-01-02 00:00:00

如果我这样做了

print "My Time", Foo.objects.create(created='2012-01-02 01:00:00').created

我明白了:

我的时间 2012-01-02 01:00:00

将日期时间分配给 models.DateTimeField 的正确方法是什么?

【问题讨论】:

  • 我测试了你的代码,它对我有用,我也看不到你的代码有任何错误。
  • 如果你在另一个打印行之前打印 my_time 会显示什么?
  • @joshcartme 我应该把它包括在内。它打印正确的时间。
  • @Jingo 哦?你到底在哪个版本的 Django 上?
  • 我在 Django 1.3.1 / Python 2.7.2

标签: django django-1.3


【解决方案1】:

您正在以正确的方式分配日期时间。

如果你能想出一个可重现的测试用例,那么这是一个错误,你应该在http://code.djangoproject.com/提交一个票

至少,您需要完整的models.py(包括import 语句之类的内容)、您需要从默认settings.py 文件更改的任何设置,以及您可以运行的一系列命令来自说明问题的python shell。

您正在使用的数据库可能是相关的 - 这是一个仅影响 SQLite 或 MySQL 的问题,还是您使用的是第三方数据库适配器?

如果你能把这些放在一起,那么一定要发布一个错误报告——你会在那里找到的帮助也将用于为其他人解决根本问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-28
    • 2019-05-09
    • 2020-04-29
    • 1970-01-01
    • 1970-01-01
    • 2015-06-23
    • 1970-01-01
    相关资源
    最近更新 更多