如何在Odoo 8 QWeb报告中格式化日期?

时间:2014-11-21 22:56:42

标签: report openerp qweb

我的销售订单中的日期当前显示为:

Fecha: 21/11/2014 16:59:15 

我想展示这样的东西:

Fecha: Surco, 21 de Noviembre del 2014

我尝试将t-escstrftime一起使用,但这不起作用:

<span t-esc="o.date_order.strftime('%Y')" />

3 个答案:

答案 0 :(得分:17)

尝试使用:

<span t-field="o.date_order" t-field-options='{"format": "d MMMM y"}'/>

结果:2014年11月21日

答案 1 :(得分:8)

似乎o.date_order它不是datetime对象而是字符串。使用time模块是可行的方法:

<span t-esc="time.strftime('%A, %d %B %Y',time.strptime(o.date_order,'%Y-%m-%d %H:%M:%S'))"/>

答案 2 :(得分:0)

听到您还可以使用功能

设置自定义日期格式

在your_report.py文件中添加该功能

class member_branch_mov(report_sxw.rml_parse):
    def __init__(self, cr, uid, name, context):
        super(member_branch_mov, self).__init__(cr, uid, name, context)
        self.localcontext.update({
            'time': time,
            'get_formate_header_date':self._get_formate_header_date      
        })


    def _get_formate_header_date(self, objects):
        header_date=''
        if self.end_date:
            date = datetime.strptime(self.end_date,'%Y-%m-%d')
            header_date=date.strftime('%d  %B %Y')
        return header_date.upper()

听到self.end_date来自向导字段

在报告中添加your_report_view.xml文件

 <t t-if="get_formate_header_date(docs)"><span t-esc="get_formate_header_date(docs)" /></t>