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):
"""