jinja2如何在datetime中删除微秒

时间:2014-07-27 23:15:20

标签: python flask jinja2

在Jinja2模板中,我想显示最后一次登录:

Last Login: {{ user.last_seen }}

last_seen应该是sqlite中的日期时间对象。

它总是给我一些类似的东西:2014-07-27 23:09:36.467761

如何在模板上显示时删除微秒部分?

2 个答案:

答案 0 :(得分:8)

您正在使用datetime对象的default string formatting,该对象与calling datetime.isoformat(' ')基本相同,这是一种包含微秒组件的格式。

如果您想要不同的格式,请使用datetime.datetime.strftime() method

明确地执行此操作
Last Login: {{ user.last_seen.strftime('%Y-%m-%d %H:%M:%S') }}

或者,生成一个新的datetime对象,并将微秒组件设置为0,然后插入:

Last Login: {{ user.last_seen.replace(microsecond=0) }}

答案 1 :(得分:0)

或者,一个很好的解决方案是flask-moment,您可以在其中使用datetime对象并指定格式化方式,如下所示:

Last Login: {{ moment(user.last_seen).format('LLLL') }}

将输出如下:

Last Login: Tuesday, July 29 2014 11:55 AM

您甚至可以使用fromNow()功能

Last Login: {{ moment(user.last_seen).fromNow() }}
Last Login: 2 days ago