我有一个带有Model的Django项目,用于保存添加日期的信息。这是模型代码。
class Outputting(models.Model):
date_added = models.DateTimeField(auto_now_add=True)
我想检索此类添加了日期的信息,并将其作为html中的本地时间进行演示。我如何进行转换?这是view.py和html模板,但它仍显示UTC时间。
view.py
def results(request):
user = request.user
data = Outputting.objects.filter(owner=user).order_by('id').values_list('id','date_added')
return render(request, "xx.html", {"data": data})
HTML:
<tr>
{% for i in data %}
<td style="word-wrap:break-word;"><div class="panel-body" type="datetime-local"><small>{{ i.1|date:'M d Y H:i:s' }}</small></div></td>
</tr class="something">
{% endfor %}
答案 0 :(得分:0)
在您的 settings.py 中更改时区位置
d = 7.0
rightShifted = newGraphData.values.map{ChartDataEntry(x:$0.x-d, y:$0.y)}
如果您不知道自己的位置,则可以通过在Django shell中运行以下命令来列出所有可用的TIME_ZONE = 'Africa/Abidjan'
选项:
time_zone
参考:https://stackoverflow.com/a/13867319/7470786
编辑:
为此,您应该动态获取用户的位置。搜索之后,我遇到了this answer,建议使用getTimeZoneOffset。
答案 1 :(得分:0)
如果没有,您必须在USE_TZ = True
中启用settings.py
。
为了使模板在本地时间具有价值,您可以执行以下操作:
{% load tz %}
{% localtime on %}
{{ value }}
{% endlocaltime %}
您还可以设置特定的时区,例如:
{% load tz %}
{% timezone "Europe/Paris" %}
Paris time: {{ value }}
{% endtimezone %}
或者,如果您需要转换一个值,则可以执行以下操作:
{% load tz %}
{{ value|localtime }}
您可以在Django官方docs中阅读更多内容。
答案 2 :(得分:0)
如果要将其存储在UTC中并在当地时间显示,请执行此操作
{% load tz %}
{% timezone "Asia/Kolkata" %}
India time: {{ value }} #Add your respective time
{% endtimezone %}
{% timezone None %}
Server time: {{ value }}
{% endtimezone %}
如果没有给出时区,它将返回UTC。
请注意-转换为本地时间并不总是合适的。 还要检查Official Docs
中的警告