2014-11-21 158 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>