如何使用Django和Python正确格式化日期时间

Col*_*ing 2 python django datetime

我有一个Data在Django中调用的模型,其中一个字段叫做time_last_updated.它初始化如下:

time_last_updated=timezone.now()
Run Code Online (Sandbox Code Playgroud)

当我手动查询数据库(PostgresSQL)时,日期看起来就像2014-02-26 01:42:44.290443+00我预期的一样好.问题是,当我Data在python shell中获取对象时,我得到了这个:

>>> Data.objects.all[0].time_last_updated    
datetime.datetime(2014, 2, 26, 1, 42, 44, 290443, tzinfo=<UTC>)
Run Code Online (Sandbox Code Playgroud)

但是,如果我立即尝试将这个结果直接放回shell中,好像要创建一个datetime对象形式,我会SyntaxError=右边获得一个tzinfo.
Django如何返回一个语法无效的对象?

Max*_*ant 5

实际上,当您在Python shell中打印对象时,datetime使用存储在其中的对象的表示形式. Django使用其模块初始化日期,因此该属性等于(默认情况下,当您没有指定任何时区时).tzinfodatetime
django.utils.timezonetzinfodjango.utils.timezone.utc

当你正在寻找时__repr__,utc你可以看到:

>>> from django.utils.timezone import utc
>>> repr(utc)
'<UTC>'
Run Code Online (Sandbox Code Playgroud)

因此tzinfo=<UTC>.它是一个字符串表示,而不是真正的Python值.