我认为简单的事情变得如此艰难。 我正在尝试格式化日期时间对象。
From this 2016-06-17 09:56:53.289000+00:00 to 2016-06-17 09:56:53
我试过的这段代码并没有对输出做任何改动。它跳过了它。
if type(field) is models.DateField:
if old_value != None:
old_value = old_value.strftime('%Y-%m-%d %H:%M:%S')[:-3]
if new_value != None:
new_value = new_value.strftime('%Y-%m-%d %H:%M:%S')[:-3]
然后我尝试了以下
if isinstance(new_value, datetime.datetime):
new_value = new_value.utcnow().strftime('%Y-%m-%d %H:%M:%S')[:-3]
if isinstance(old_value, datetime.datetime):
old_value = old_value.utcnow().strftime('%Y-%m-%d %H:%M:%S')[:-3]
但是它会删除new_value和old_value的任何值的跟踪,并且不显示任何内容。这让我很困惑!
我的代码的结尾部分如下所示,显示日期:
if new_value != old_value:
print "%s does not match" % key
changes[key] = "Field %s %s updated to %s<br/>" % (key, old_value, new_value)
如果有人能指出我正确的方向,那就太好了。
答案 0 :(得分:2)
尝试删除在.utcnow()
来电之前添加的.strftime()
来电。 new_value.utcnow()
调用datetime.datetime.utcnow
,它返回一个全新的datetime.datetime对象,表示当前时间,与new_value
或old_value
无关。
答案 1 :(得分:0)
d = '2016-06-17 09:56:53.289000+00:00'
print(datetime.strptime(d[:19], '%Y-%m-%d %H:%M:%S').strftime('%Y-%m-%d %H:%M:%S'))
答案 2 :(得分:0)
只是一个基于代码的简单代码段
In [11]: from datetime import datetime
In [12]: mytime = now.strftime("%Y-%m-%d %H:%M:%S")
In [13]: print(mytime)
2016-06-21 16:44:32