openerp7 时区问题解决--改成本地时区
由于目前openerp的时区,读取的是UTC时间,而我国本地时间比UTC快8小时
问题就导致,写入数据库的时候时间相差8小时,以及Openerp日志输出时间格式也相差8小时和前端显示问题
1、更改openerp日志输出时间,如:

修改文件:oe_dev/openerp/__init__.py
os.environ['TZ'] = 'UTC'
修改成:
os.environ['TZ'] = 'Asia/Shanghai'
2、修改数据写入时间差问题
修改文件:oe_dev/openerp/osv/orm.py
由于OE的数据库model会默认创建create_date,wirte_date,而更改这两处的只有create和write方法,我们只需要对这两处的方法做下处理,(他们默认取的都是utc时间)
修改文件行:4219
修改:
upd0.append("write_date=(now() at time zone 'Asia/Shanghai')")
修改文件行:4510
修改:
upd1 += ",%s,(now() at time zone 'Asia/Taipei'),%s,(now() at time zone 'Asia/Shanghai')"
3、针对时间字段类型(date,datetime...)类型写入数据库时间差问题
修改文件:oe_dev/openerp/osv/fields.py
在文件头增加:from datetime import datetime,timedelta
在4483文件后增加
if self._columns[field]._type == 'datetime':
datetime_type = datetime.strptime(vals[field],'%Y-%m-%d %H:%M:%S') + timedelta(hours=8)
vals[field] = datetime_type.strftime('%Y-%m-%d %H:%M:%S')
如:

只是针对datetime,date类型没写(懒得写,反正现在也不用~~~Orz....)
-----------------我是华丽的分割线--------------------
由于加载datetime和OE的源码加载方式不一样
OE: import datetime
修改:from datetime import datetime,timedelta
需要修改datetime的调用方式,不然会出错,具体错误原因,请猛戳:http://stackoverflow.com/questions/12906402/type-object-datetime-datetime-has-no-attribute-datetime
修改函数:_store_set_values (大概在4657行)
修改成:write_date = datetime.fromtimestamp(time.mktime(res_date)) ,少一层调用
4、前端显示问题,虽然数据库里面存的时间是对的,但是前端显示时也会有时间差问题
修改文件: oe_dev/openerp/addons/web/static/src/js/dates.js
修改第24行:
var obj = Date.parseExact(res[1] + " UTC", 'yyyy-MM-dd HH:mm:ss zzz');
修改成:
var obj = Date.parseExact(res[1], 'yyyy-MM-dd HH:mm:ss');
未完待续...
openerp7 时区问题解决--改成本地时区的更多相关文章
- elastic date时区问题解决办法
之前介绍filter date插件时就谈到时区问题,但是没有说明白.最近在使用range查询时间范围内的数据时出现了数据量不一致的情况.特地了解了下ELK Stack中关于时区的问题. 问题: 使用k ...
- django使用mysql的时区问题解决
1.如果是linux 将系统的时区表导入mysql. mysql_tzinfo_to_sql /usr/share/zoneinfo 2.如果是windows 下载时区表 然后导入时区表,file_n ...
- centos系统的时间时区和MySQL的时间时区问题
原文:http://1567045.blog.51cto.com/1557045/1074971 centos系统的时间时区和MySQL的时间时区问题 年轻人做事要细心,特别我们这些搞IT的千万不莽 ...
- linux修改服务器时区并使用所选时区的时间
linux 修改服务器时区并使用所选时区的时间(以 ubuntu18.04 修改为美国芝加哥时区为例) 一.修改时区 /usr/bin/tzselect 1.选择地区, 美洲地区: ...
- JavaScript 解析 Django Python 生成的 datetime 数据 时区问题解决
JavaScript 解析 Django/Python 生成的 datetime 数据 当Web后台使用Django时,后台生成的时间数据类型就是Python类型的. 项目需要将几个时间存储到数据库中 ...
- 根据本地/服务器时间获取指定时区时间 new Date指定时区时间
1.代码 function getTimeByTimeZone(timeZone){ var d=new Date(); localTime = d.getTime(), localOffset=d. ...
- java 时区处理机制(0时区转换到服务器时区)
package com.globalroam.util; import java.util.Calendar; import java.util.Date; import java.util.Time ...
- PHP时区转换(默认中国时区<Asia/Shanghai>转意大利时区<Europe/Rome>)
<?php function changeTimeZone($date_time, $format = 'Y-m-d H:i:s', $to = 'Europe/Rome', $from = ' ...
- CDH6.2离线安装(整理版)
1.概述 CDH,全称Cloudera's Distribution, including Apache Hadoop.是Hadoop众多分支中对应中的一种,由Cloudera维护,基于稳定版本的Ap ...
随机推荐
- php apache
php与Apache配置基础知识 1.在 AllowOverride 设置为 None 时,.htaccess 文件将被完全忽略.当此指令设置为All时,所有具有“.htaccess” 作用域的指令都 ...
- java 判断手机号码和邮箱的正则表达式
很多场合会用到判断输入框输入的是否为手机或者邮箱,下面是这个正则表达式: Pattern patternMailBox = Pattern .compile( "^([a-zA-Z0-9 ...
- spring boot thymeleaf
引入支持 <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf-spr ...
- I2S接口工作原理
I2S音频通信协议 I2S有3个主要信号: 1.串行时钟SCLK,也叫位时钟(BCLK),即对应数字音频的每一位数据,SCLK都有1个脉冲.SCLK的频率=2×采样频率×采样位数 2. 帧时钟LRC ...
- (原创)用c++11打造好用的any
上一篇博文用c++11实现了variant,有童鞋说何不把any也实现一把,我正有此意,它的兄弟variant已经实现了,any也顺便打包实现了吧.其实boost.any已经挺好了,就是转换异常时,看 ...
- powerviot report cannot refresh data
配置完成powerviot后发现打开excel无法刷新数据源连接提示出错: 在security token service服务应用中新建application,如图创建,然后将excel里面的auth ...
- How do I convert an IIR filter into a FIR filter in digital signal processing?
Maybe you were asking if there is some kind of design tool allowing to convert an IIR filter into an ...
- [翻译]Bitmap的异步加载和缓存
内容概述 [翻译]开发文档:android Bitmap的高效使用 本文内容来自开发文档"Traning > Displaying Bitmaps Efficiently", ...
- 【环境学习】ThinkPHP5 5.0.22/5.1.29 远程代码执行漏洞
环境保留:2019.4.4-4.10 环境搭建: 这里我使用的是:vulhub vulhub目录结构:vulhub/thinkphp/5-rcess 测试地址(开放一段时间供大家学习):http:// ...
- Spring Boot中使用Redis数据库
引入依赖 Spring Boot提供的数据访问框架Spring Data Redis基于Jedis.可以通过引入spring-boot-starter-redis来配置依赖关系. <depend ...