由于数据库中存储的是UTC时区,默认情况下数据导出和group by都存在时区问题。
彻底解决办法:将以UTC时区存储的数据改为按目标时区存储,并去掉JS中的时区转换。
1、修改Odoo系统环境时区:
odoo/openerp/__init__.py 文件
import os
os.environ['TZ'] = 'UTC' # 将这里的UTC 改为Asia/Shanghai 或其它目标时区
2、修改 web页面时区转换的JS文件:
odoo/addons/web/static/src/js/openerpframework.js 中的两个方法
openerp.str_to_datetime 字符串转时间
openerp.datetime_to_str 时间转字符串
去掉这两个方法中的UTC字符。
3、修改以UTC时间执行的SQL 查询或插入语句:
去掉所有带 "at time zone 'UTC'" 或 "at time zone 'utc'"字符串的语句。
odoo/openerp/models.py 特别是create_date、write_date字段值;
odoo/openerp/addons/base/ir/ir_cron.py 定时任务中UTC时区改为当前时区;
odoo/openerp/netsvc.py 备份下来的数据库名称时间标志
4、修改其他功能性模块中带 "at time zone" 字符串来取UTC时间的语句。
如 calendar 模块和 hr_timesheet_sheet模块
2016-10-05追加:
Odoo9.0写法和8.0不太一样。找不到js的时间转换的地方了。没时间调试进去看了。暂时搁置。
感觉必须把服务器时区改成UTC。然后,ODOO里的用户首选项里选择哪个时区,就是对应哪个时区的时间。
但是如果和别的应用共用一台服务器的话,不太可能吧服务器时区改成UTC。
如果要把代码里所有astimezone的地方都改一遍的话,感觉有点坑爹。
相关推荐
- **时区设置**:根据企业所在地区的实际时区进行设置。 - **管理员权限设置**:为管理员账号分配相应的权限,以便于管理和维护系统。 - **设置基本信息**:如公司名称、地址等基本信息的录入。 - **功能模块...
时区问题在分布式和全球化的企业环境中经常出现,因为不同的地理位置可能有不同的时间标准。在OpenERP中,时区bug可能导致日期和时间的显示、计算或同步出现问题,这可能对企业的数据准确性和运营效率产生负面影响。...
odoo_dhtmlxgantt 将DHX的甘特图集成到Odoo中该项目的目标是将甘特图与Odoo完全集成。 由于甘特图是项目管理的重要工具。 在Odoo中包含一个将使其与较早...有时更改datetime字段时不考虑时区:( 待办事项:计算周末。
安装和设置服务器先决条件(例如,时区,git等) 保护系统 HTTPS和反向代理(可选) 主域名和备份域名(可选) 通过带密码的SSH密钥访问服务器(可选) 已发送SSH密钥发送给用户(您可以删除/编辑此密钥) 在...
4. 配置系统设置,如时区、用户名、密码等。 **四、安装VMware Tools** 1. 在虚拟机运行操作系统后,VMware Workstation会提示安装VMware Tools。 2. 安装VMware Tools可以提高虚拟机性能,优化显示效果,实现与...
4. **区域设置**:Babel提供了对世界不同地区和语言的区域设置支持,包括时区、度量单位、排序规则等。开发者可以通过区域代码获取相应的设置,如`babel.dates.get_timezone('Asia/Shanghai')`。 5. **拼写检查**:...
4. **tzinfo(时区信息)**:`dateutil.tz`模块提供了对时区处理的支持,包括解析和转换带有时区信息的日期和时间,这对于处理跨越不同时区的数据至关重要。 在OpenERP7中,`dateutil`可能被用于以下场景: 1. **...
OpenERP(现在称为Odoo)是一个开源的企业资源规划(ERP)软件,它使用Python编程语言,因此在编译源代码时,确保所有必要的Python库和工具已安装是至关重要的。 描述中提到的"OpenERP7.0在win64环境下源码编译所...