Python格式日期问题

2024-04-25 17:39:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我原以为很简单的事情却变成了这样的挣扎。 我正在尝试格式化datetime对象。你知道吗

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]

但是,它会删除新值和旧值的任何跟踪,并且不显示任何内容。这让我很困惑!你知道吗

代码的结尾部分如下所示,显示日期:

 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)

如果有人能给我指出正确的方向那就太好了。你知道吗


Tags: to对象key代码fromnonenewdatetime
3条回答

尝试删除在.strftime()调用之前添加的.utcnow()调用。new_value.utcnow()调用datetime.datetime.utcnow,它返回一个全新的日期时间。日期时间表示当前时间的对象,它与new_valueold_value无关。你知道吗

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

只是一个简单的代码片段

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

相关问题 更多 >