odoo时间转换成当前时区时间

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)









旅行
allen 2023年7月4日
分析这篇文章
标签
我们的博客
存档