如何在HTML中显示当地时间?

时间:2018-12-19 04:44:09

标签: html css django

我有一个带有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 %}

3 个答案:

答案 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

中的警告