2014-11-21 10 views

Antwort

8

Es scheint wie o.date_order es ist kein datetime Objekt, sondern eine Zeichenfolge. Unter Verwendung des time Modul ist der Weg zu gehen:

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

denke ich, Sebastian Antwort sauberer und klarer ist. –

+1

Aber seine Lösung löst das Problem nicht –

+1

Das Datumsformat in der T-Feld-Optionen-Attribut verwendet LDML-Muster, so dass {"Format": "EEEE d MMMM y"} das gewünschte Ergebnis erhalten. http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Format_Patterns –

17

Versuchen Sie es mit:

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

Ergebnis: 21 Noviembre 2014

+0

Danke! Das ist sogar noch besser. Aber wie kann ich wie folgt formatieren: "Surco, 21 de Noviembre del 2014" mit dieser Methode? –

+0

Ich versuche das auch zu tun. Ich kann immer noch nicht. – Sebastian

+0

Traurig, kann das Format nicht von der LANG-Variable (oder von irgendeinem) bekommen, da T-Feld-Optionen ein strenges JSON-Objekt sein müssen (kein Python-Diktat). – Yajo

0

Hören Sie können auch die benutzerdefinierten Datumsformat einstellen Funktion

Fügen Sie die Funktion in der Datei your_report.py

hinzu
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() 

hören self.end_date kommt aus dem Assistenten Feld

in Ihrem Bericht hinzufügen your_report_view.xml Datei

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