由于目前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 时区问题解决--改成本地时区的更多相关文章

  1. elastic date时区问题解决办法

    之前介绍filter date插件时就谈到时区问题,但是没有说明白.最近在使用range查询时间范围内的数据时出现了数据量不一致的情况.特地了解了下ELK Stack中关于时区的问题. 问题: 使用k ...

  2. django使用mysql的时区问题解决

    1.如果是linux 将系统的时区表导入mysql. mysql_tzinfo_to_sql /usr/share/zoneinfo 2.如果是windows 下载时区表 然后导入时区表,file_n ...

  3. centos系统的时间时区和MySQL的时间时区问题

    原文:http://1567045.blog.51cto.com/1557045/1074971 centos系统的时间时区和MySQL的时间时区问题  年轻人做事要细心,特别我们这些搞IT的千万不莽 ...

  4. linux修改服务器时区并使用所选时区的时间

    linux 修改服务器时区并使用所选时区的时间(以 ubuntu18.04 修改为美国芝加哥时区为例) 一.修改时区    /usr/bin/tzselect        1.选择地区, 美洲地区: ...

  5. JavaScript 解析 Django Python 生成的 datetime 数据 时区问题解决

    JavaScript 解析 Django/Python 生成的 datetime 数据 当Web后台使用Django时,后台生成的时间数据类型就是Python类型的. 项目需要将几个时间存储到数据库中 ...

  6. 根据本地/服务器时间获取指定时区时间 new Date指定时区时间

    1.代码 function getTimeByTimeZone(timeZone){ var d=new Date(); localTime = d.getTime(), localOffset=d. ...

  7. java 时区处理机制(0时区转换到服务器时区)

    package com.globalroam.util; import java.util.Calendar; import java.util.Date; import java.util.Time ...

  8. PHP时区转换(默认中国时区<Asia/Shanghai>转意大利时区<Europe/Rome>)

    <?php function changeTimeZone($date_time, $format = 'Y-m-d H:i:s', $to = 'Europe/Rome', $from = ' ...

  9. CDH6.2离线安装(整理版)

    1.概述 CDH,全称Cloudera's Distribution, including Apache Hadoop.是Hadoop众多分支中对应中的一种,由Cloudera维护,基于稳定版本的Ap ...

随机推荐

  1. bootstrap阶段测验【答案】

    <!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...

  2. XML Publisher 并发程序由于"输出提交处理程序提交失败

    http://www.cnblogs.com/benio/archive/2012/03/30/2424900.html xmlp 报表运行完成后,状态为warning,其原因大概有以下3类:1.&q ...

  3. hdu 1.2.7

    #include<cstdio> #include<iostream> using namespace std; int main() { //freopen("in ...

  4. LinuxC下获取UDP包中的路由目的IP地址和头标识目的地址

    在接受到UDP包后,有时候我们需要根据所接收到得UDP包,获取它的路由目的IP地址和头标识目的地址. (一)主要的步骤: 在setsockopt中设置IP_PKTINFO,然后通过recvmsg来获取 ...

  5. js怎么样根据select的name取到值

    先看一下ASP.NET MVC的html: 在jQuery中,可以写:

  6. 16_python_面向对象

    一.面向对象和面向过程的区别          1.面向对象:一切以对象为中心.有相同属性和动作的结合体叫做对           优点:易维护.易复用.易扩展,由于面向对象有封装.继承.多态性的特性 ...

  7. vue中封装公共方法,全局使用

    1.以封装的合并单元格为例,首先建立一个util.js 2.在main.js中引用 3.直接在使用该方法的地方调用就可以了

  8. python安装mysqlclient模块报fatal error: Python.h:解决方法

    在搭建Flask框架安装mysqlclient模块时候老是报fatal error: Python.h:错误,折腾老半天,百度了老半天看了不少大神帖子,就是没解决, 后来发现这不是个BUG,都是自己的 ...

  9. POJ 2612

    #include<iostream> #include<stdio.h> #include<algorithm> #define MAXN 11 using nam ...

  10. C++与C的联系与区别

    C++与C的联系: C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛.C++支持多种编程范式 --面向对象编程.泛型编程和过程化编程. 其编程领域众广,常用于系统开发,引擎开发等应用领域, ...