【发布时间】:2015-01-01 02:05:53
【问题描述】:
所以我有想要在本地时间向用户显示的日期时间对象。
使用此处已回答的问题,我想出了一个 jinja 过滤器来完成此操作:
from tzlocal import get_localzone
import pytz
def local_datetime(utc_dt):
local_tz = get_localzone()
local_dt = utc_dt.replace(tzinfo=pytz.utc).astimezone(local_tz)
return local_dt.strftime('%m/%d/%y @ %I:%M %p')
app.jinja_env.filters['local_dt'] = local_datetime
{{ user.last_login_at|local_dt }} # in my template
我的想法是它会在每次有人查看页面时运行(因此是过滤器),以便它始终显示在用户的本地时区中。
它显示在我的开发机器上,但我想确保 get_localzone() 实际上是在抓取用户的本地时区,而不是总是在服务器上。
我的问题是:如何测试这是否正常工作?
【问题讨论】:
-
我相信
get_localtimezone获取系统的时区,而不是客户端的。
标签: python datetime flask jinja2 pytz