diff --git a/app_base_chinese/data/ir_default_data.xml b/app_base_chinese/data/ir_default_data.xml index df41c518..4f9ae9ef 100644 --- a/app_base_chinese/data/ir_default_data.xml +++ b/app_base_chinese/data/ir_default_data.xml @@ -10,7 +10,7 @@ - "Asia/Shanghai" + "Etc/GMT-8" diff --git a/app_base_chinese/hooks.py b/app_base_chinese/hooks.py index 9db55990..de9af053 100644 --- a/app_base_chinese/hooks.py +++ b/app_base_chinese/hooks.py @@ -44,7 +44,7 @@ def post_init_hook(cr, registry): rec._compute_complete_name() # 超级用户改时区为中国 ids = env['res.users'].sudo().with_context(lang='zh_CN').browse([1, 2]) - ids.write({'tz': "Asia/Shanghai"}) + ids.write({'tz': "Etc/GMT-8"}) except Exception as e: raise Warning(e) diff --git a/app_common/models/base.py b/app_common/models/base.py index bb8efc47..5f27377e 100644 --- a/app_common/models/base.py +++ b/app_common/models/base.py @@ -24,10 +24,12 @@ class Base(models.AbstractModel): """ if not value: return value - # 默认中国时区 - user_tz = pytz.timezone(self.env.user.tz or 'Etc/GMT+8') - dt_local = pytz.utc.localize(value).astimezone(user_tz) - return dt_local.strftime(return_format) + if isinstance(value, datetime): + value = value.strftime(return_format) + dt = datetime.strptime(value, return_format) + pytz_timezone = pytz.timezone(self.env.user.tz or 'Etc/GMT-8') + dt = dt.replace(tzinfo=pytz.timezone('UTC')) + return dt.astimezone(pytz_timezone).strftime(return_format) def _app_dt2utc(self, value, return_format=DEFAULT_SERVER_DATETIME_FORMAT): """