2017-08-01 4 views
0

私はこれが私の計算機能odoo10の日時の問題ですか?私のカスタムモデルで

@api.depends('time_from', 'time_to') 
def _get_time(self): 
    t1 = datetime.datetime.strptime(self.time_from, '%Y-%m-%d %H:%M:%S') 
    t2 = datetime.datetime.strptime(self.time_to, '%Y-%m-%d %H:%M:%S') 
    if t2<t1: 
     raise ValidationError('Time To must greater than Time From') 
    time_diff = (t2-t1) 
    self.tot_time = time_diff 

これは成功で完全に時間差を印刷しているフィールドに

time_from = fields.Datetime(string="Time From", default=datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')) 

time_to = fields.Datetime(string="Time To", default=datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')) 

tot_time = fields.Char("Time Difference", compute='_get_time') 

を定義しました。 時刻と時刻はmm/dd/yyyy hh:mm:ss形式です。

どうYYYY/MM/DD HHにこれを変更するには:mm:ssの形式

私はこの「%Y-%D-%メートル%のHのような形式を変更します。%M:% S '。 しかし、正しい結果が得られていません。

フォーマットを変更するにはどうすればよいですか?

この形式で時差を計算することは可能ですか?

+0

定義しているデフォルト値は変更されません。これらのフィールドは、.pyモジュールがレジストリに最後にロードされたときのデフォルトになります。 – manu

答えて

1

DateDatetimefields.py上のクラス定義を参照してください特定の形式で、データベース内の文字列として保存されます。あなたはORMのフィールドに使用される形式を変更することはできません。あなたがの形式を変更したい場合これらのフィールドを表示する日付または日時は、コードからではなく、次のものから行うことができます。

1)設定 - >翻訳 - >日付と日付を表示する方法を変更することができますクライアント側。

2)テンプレート/レポートがある場合は、たとえば<p t-esc="formatLang(time.strftime('%Y-%m-%d %H:%M:%S')" />などの式を使用することも、別の式を使用して日付や日時の設定方法を変更することもできます。

3)xmlファイルのフィールド定義では、レンダリングを行うカスタムのjavascript/widgetを使用できます。

+0

George Daramouskas:日付と日時に関する情報をありがとう – aslamsha22