【发布时间】:2018-12-17 20:14:59
【问题描述】:
我正在使用 Django 1.11 和 pytz==2018.3。
我有一个聊天模型,其中的时区字段不会以当地时间显示。
class Message(models.Model):
sender = models.ForeignKey(User, on_delete=models.CASCADE, related_name='sender')
receiver = models.ForeignKey(User, on_delete=models.CASCADE, related_name='receiver')
message = models.CharField(max_length=1200)
timestamp = models.DateTimeField(auto_now_add=True)
is_read = models.BooleanField(default=False)
当我像这样正常打印时,我得到:
<div class="textcontainer lighter">
{{ message }}
<span class="time-right">{{ message.timestamp|date:"SHORT_DATETIME_FORMAT" }}</span>
</div>
输出:
July 8, 2018, 2:55 a.m
但是,这是 UTC 时间(提前 6 小时。我希望它说一个不同的时间)。
我尝试了以下方法:
{{ message.timestamp|localtime }}
但这没有任何作用。
我也尝试过包括这两个:
{% load tz %}
{% get_current_timezone as TIME_ZONE %}
在我的 settings.py 文件中,我有:
USE_L10N = True
USE_TZ = True
想法? 提前致谢!
【问题讨论】:
-
本地时间是您在 settings.py 文件中设置的时区显示的时间,默认为 UTC。我从您的问题中了解到,您正在寻找用户时区的时间。
标签: django django-templates utc pytz