首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何解析Django模板中的"2015-01-01T00:00:00Z“?

如何解析Django模板中的"2015-01-01T00:00:00Z“?
EN

Stack Overflow用户
提问于 2015-12-01 04:18:43
回答 3查看 4.2K关注 0票数 6

在我的Django html模板中,我使用"2015-01-01T00:00:00Z“格式的干草堆获得我的SOLR facet_date结果。如何在模板中以"01/01/2015“格式解析它?我的模板是

代码语言:javascript
代码运行次数:0
运行
复制
{{ facets.dates.created.start }}

什么“日期:”选项我应该添加到我的模板?谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-01 04:40:36

如果您的日期是一个ISO字符串而不是Python datetime.datetime,那么我猜您必须在视图上解析它,或者编写一个自定义过滤器:

代码语言:javascript
代码运行次数:0
运行
复制
# yourapp/templatetags/parse_iso.py
from django.template import Library
import datetime

register = Library()

@register.filter(expects_localtime=True)
def parse_iso(value):
    return datetime.datetime.strptime(value, "%Y-%m-%dT%H:%M:%SZ")

然后在模板处:

代码语言:javascript
代码运行次数:0
运行
复制
{% load parse_iso %}

{{ value|parse_iso|date:'d/m/Y'}}

编辑

得到了这个错误Exception Type: TemplateSyntaxError at /search/ Exception Value: 'parse_iso' is not a valid tag library: Template library parse_iso not found

确保你遵循文档中规定的代码布局

代码语言:javascript
代码运行次数:0
运行
复制
yourapp/
    __init__.py
    models.py
    ...
    templatetags/
        __init__.py
        parse_iso.py
    views.py

您的国家可以使用m/d/Y (01/01/2015是模棱两可的,我建议使用一个像31/01/2015这样的例子,这样可以清楚地知道第一个数字代表的是日还是月)。

票数 9
EN

Stack Overflow用户

发布于 2015-12-01 04:42:38

如果{{ facets.dates.created.start }}是datetime对象,则可以使用

代码语言:javascript
代码运行次数:0
运行
复制
{{ facets.dates.created.start|date:"SHORT_DATE_FORMAT" }}

如果您正在提供字符串,则可以创建一个模板筛选器,将字符串转换为datetime对象并应用date筛选器。

代码语言:javascript
代码运行次数:0
运行
复制
@register.filter
def stringformat(value, args):
    return datetime.strptime(value, args)

在模板中:

代码语言:javascript
代码运行次数:0
运行
复制
{{ facets.dates.created.start|stringformat:"%Y-%m-%dT%H:%M:%SZ"|date:"SHORT_DATE_FORMAT" }}
票数 4
EN

Stack Overflow用户

发布于 2015-12-01 04:33:01

为此,您可以使用Django模板标记。您需要使用{{my_date|date:“some_format”},它以"my_date“作为参数(应该是date对象)来"date”标记,然后根据给定的格式对其进行格式化。

代码语言:javascript
代码运行次数:0
运行
复制
{{facets.dates.created.start|date:"d/m/Y"}}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34012527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档