【问题标题】:Flask + Jinja: Convert UTC to Local TimezoneFlask + Jinja:将 UTC 转换为本地时区
【发布时间】:2014-08-18 01:52:17
【问题描述】:

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

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

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

最好:

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

    --或--

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

是否有将原始时区转换为本地时区的最佳实践?

【问题讨论】:

标签: python flask timezone jinja2 pytz


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    关于第二个问题:

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

    这没有多大意义。 python 意义上的“naive”意味着“不知道时区”——所以实际上并不存在“naive timezone”这样的东西。

    如果您的意思是从幼稚的datetime 转换为有意识的datetime,那么最好的建议是确保使用localize 函数,如the pytz documentation 中所述。不要尝试自己将其分配给tzinfo 属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-31
      • 2014-08-12
      • 2010-11-19
      • 2011-09-16
      • 2013-08-04
      • 2021-04-20
      • 2014-10-05
      • 1970-01-01
      相关资源
      最近更新 更多