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

时间:2014-06-27 03:44:39

标签: python flask timezone jinja2 pytz

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

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

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

最好是:

  1. 遍历每条记录并转换时区,然后再将其传递给render_template

    - 或 -

  2. 在我的视图中定义一个在模板中执行此转换的宏?

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

2 个答案:

答案 0 :(得分:0)

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

关于第二个问题:

  

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

这并没有多大意义。 "幼稚"在python意义上意味着"不知道时区" - 所以,这并不是一个天真的时区"。

如果您的意思是从天真datetime转换为知道datetime,那么最好的建议是确保使用localize功能,如the pytz documentation中所述。请勿尝试自己将其分配给tzinfo媒体资源。

答案 1 :(得分:0)

恕我直言,第二种方法更好,因为服务器代码不必知道每个客户端的时区信息。此外,烧瓶扩展名(例如Flask-Moment)使此操作更容易实现。