Flask + Jinja:将UTC转换为本地时区

问题描述 投票:2回答:2

我有一个Flask应用程序,它将用户的时区(来自pytz.common_timezones)存储在数据库中。

我使用UTC时间戳将记录存储在数据库中。

我想根据他们的时区向最终用户显示这些记录。

最好是:

  1. 在传递给render_template之前,迭代每个记录并转换时区? - 要么 -
  2. 在我的视图中定义一个宏,在模板本身内执行此转换?

是否有将天真时区转换为本地时区的最佳做法?

python flask timezone jinja2 pytz
2个回答
0
投票

我想你在这里有两个不同的问题。真正的问题是如何最好地操纵你的模板 - 可以询问任何价值操纵。我会让其他人回答这个问题。

关于第二个问题:

是否有将天真时区转换为本地时区的最佳做法?

这没有多大意义。蟒蛇意义上的“幼稚”意味着“不知道时区” - 所以没有真正的“天真时区”这样的东西。

如果你的意思是从天真的datetime转换为知觉的datetime,那么最好的建议是确保使用localize函数,如the pytz documentation中所述。不要试图自己将它分配给tzinfo财产。


0
投票

恕我直言,第二个选项更好,因为服务器代码不必知道每个客户端的时区信息。此外,像Flask-Moment这样的烧瓶扩展使这更容易完成。

© www.soinside.com 2019 - 2024. All rights reserved.