【问题标题】:Django. Display correct time - depending on time zone姜戈。显示正确的时间 - 取决于时区
【发布时间】:2014-09-12 12:15:23
【问题描述】:

根据用户的时区显示时间的最佳方式是什么?

我有一个 Post 对象:

class Post(models.Model):
   submit_date = models.DateTimeField(auto_now_add=True)
   ...

在模板中我有这样的东西:

{% load tz %}
<p> TIME: {{ post_object.submit_date|localtime }} </p>

在settings.py中:

USE_TZ = True
USE_L10N = True
TIME_ZONE = 'UTC'

可能我遗漏了一些明显的东西,我想要的只是根据时区显示用户时间的模板。我应该对 views.py 文件做一些逻辑吗?

【问题讨论】:

标签: python django timezone


【解决方案1】:

这取决于 django 版本和用户时区。如果您将用户时区存储在用户个人资料或其他地方,您可以使用timezone 模板标签:

{% timezone "Europe/Paris" %}
    Paris time: {{ value }}
{% endtimezone %}

或者你可以使用timezone过滤器:

{{ value|timezone:"Europe/Paris" }}

否则,您将不得不找出用户的时区是什么(我认为是通过她的 ip)。所以你可以使用fasoutohere提供的解决方案(但它返回国家的第一个时区并不可靠,并且有几个国家有多个时区)。

PS:我认为最好的办法是询问用户她的时区并将其存储起来,以便为她提供正确的日期/时间显示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-19
    • 2020-12-18
    • 2020-08-17
    • 2021-12-16
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多