美文网首页Python
django如何在template中指定时区

django如何在template中指定时区

作者: 转身丶即天涯 | 来源:发表于2019-03-21 14:06 被阅读23次

    由于django的模板是属于服务端渲染,所以在我么使用django的template时很难使用js去将UTC时间转换为本地时间。
    ps:并非不能转换,比如可以使用jquery操纵显示时间的DOM元素,这样也能实现,但是今天不讲这个方式。


    在模板也的最顶部使用{% load tz %}
    如果你的页面是继承了其他页面的话,需要先{% extends "your_template.html" %}


    image.png

    然后找到你要显示时间的地方,举个例子,我需要在table标签的<td>中显示时间。
    原来是这么写的:

    <td>{{ my_time }}</td>
    

    那么,你需要改写成

    <td>
        {% timezone "your_time_zone" %}
            your_local time: {{ my_time }}
        {% endtimezone %}
    </td>
    

    your_time_zone:表示你所在的时区,中国内陆可以写"Asia/Shanghai"
    your_local:可以写成Shanghai
    然后,模板就变成下面的模样:

    <td>
        {% timezone "Asia/Shanghai" %}
           Shanghai time: {{ my_time }}
        {% endtimezone %}
    </td>
    
    顺便说一句,如果你要格式化时间,django template提供了管道工具,和linux中的管道类似,你不知道也没事,因为用法很简单。

    还是上面的{{ my_time }}对象,你就可以写成:

    {{ my_time|date:"Y-m-d H:i"}}
    

    具体的格式化用法可以参照django官放文档,不做详细介绍。

    相关文章

      网友评论

        本文标题:django如何在template中指定时区

        本文链接:https://www.haomeiwen.com/subject/sfpqvqtx.html