odoo默认使用的是0时区时间(与我们东八区差8个小时),但在显示层会根据用户选择的时区来显示当前用户
的时区,比如管理员在设置->用户->首选项->时区中选择“Asia/Shanghai”,那么管理员看到的就是东八区的时
间。但有时候有些场景需要把0时区的时间转换成当前时区 的时间,可使用以下的代码转换:
import datetime
import time
import pytz
create_date = '2023-07-04 21:56:06' # 需要转换的时间
utc_tz = pytz.timezone('UTC')
utc_time = https://datetime.datetime.now%28tz%3Dutc_tz%29/
now_time = https://datetime.datetime.now%28%29/
now_between_utc_seconds = (now_time - utc_time.replace(tzinfo=None)).seconds
time_start_val = time.mktime(time.strptime(create_date, "%Y-%m-%d %H:%M:%S")) + now_between_utc_seconds
# 将数据库中的时间对象对应的时间戳转换回格式化字符串
# 1,首先转换成localtime
time_start_local_val = time.localtime(time_start_val)
# 2.#转换成新的时间格式
true_time_start = time.strftime("%Y-%m-%d %H:%M:%S", time_start_local_val)
print(true_time_start)