2017-07-14 16 views
1

レポートを印刷すると、いつも時間が間違っています(約1時間)、この問題の解決方法はわかりません。エラー日付と時刻odoo v8

私は私のコードでは、この機能を持っている:

def _interpolation_dict(self): 
    t = time.localtime() # Actually, the server is always in UTC. 
    return { 
     'year': time.strftime('%Y', t), 
     'month': time.strftime('%m', t), 
     'day': time.strftime('%d', t), 
     'y': time.strftime('%y', t), 
     'doy': time.strftime('%j', t), 
     'woy': time.strftime('%W', t), 
     'weekday': time.strftime('%w', t), 
     'h24': time.strftime('%H', t), 
     'h12': time.strftime('%I', t), 
     'min': time.strftime('%M', t), 
     'sec': time.strftime('%S', t), 
    } 

答えて

1

あなたは以下の方法を使用してそれを行うことができ、ユーザーのタイムゾーン

にUTCタイムゾーンを変換する必要があります。 pytz 機能を使用して、その変換UTCタイムゾーンへのユーザーのタイムゾーンの後

我々は(datetime.nowを使用してUTCタイムゾーンを取得する必要があり、上記の方法で
from datetime import datetime 
import pytz 

time_zone=self.env.user.tz 
if time_zone: 
    local_now = datetime.now(pytz.timezone(time_zone)) 
else: 
    local_now=datetime.now() 
return { 
     'year': local_now.strftime('%Y'), 
     'month': local_now.strftime('%m'), 
     'day': local_now.strftime('%d'), 
     'y': local_now.strftime('%y'), 
     'doy': local_now.strftime('%j'), 
     'woy': local_now.strftime('%W'), 
     'weekday': local_now.strftime('%w'), 
     'h24': local_now.strftime('%H'), 
     'h12': local_now.strftime('%I'), 
     'min': local_now.strftime('%M'), 
     'sec': local_now.strftime('%S'), 
    }  

) 。

これは役に立ちます。

+0

良い回答... –