2014-11-21 100 views

回答

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'))"/> 
+0

我认为塞巴斯蒂安的回答是更清洁,更清晰。 – 2015-05-28 23:37:19

+1

但是他的解决方案没有解决问题 – 2015-05-29 00:19:03

+1

t-field-options属性中的日期格式使用LDML模式,所以{“format”:“EEEE d MMMM y”}将得到所需的结果。 http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Format_Patterns – 2015-05-29 01:54:25

17

尝试使用:

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

结果:21 Noviembre 2014

+0

谢谢!这甚至更好。但是,如何使用此方法格式化为:“Surco,21 de Noviembre del 2014”? – 2014-11-24 17:09:26

+0

我也试图做到这一点。我仍然不能。 – Sebastian 2014-11-24 18:11:22

+0

很遗憾,无法从LANG变量(或来自任何)获取格式,因为t-field-options必须是严格的JSON对象(不是python dict)。 – Yajo 2015-07-22 10:18:44

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>