由于目前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/Shanghai'),%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. openerp7 时区问题解决--改成本地时区

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

  2. ISO日期格式标准,浏览器到服务器到mysql中的时区

    时区简单理解 https://zh.wikipedia.org/wiki/%E6%97%B6%E5%8C%BA 上面的链接是时区的wiki说明,下面说说我记住的部分: GMT时区是格林威治标准时间,我 ...

  3. ubuntu设置时区为美国中部时间西六区

    查看当前ubuntu系统时区 date -R Fri, Dec :: + 显示的是东八区时间及北京时间 然后输入tzselect 按照提示修改对应时区 本例子修改为美国中部时间 西六区 ~$ tzse ...

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

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

  5. 在 Linux 中查看时区

    1.date date +"%Z %z" 或者 date -R 2.timedatectl timedatectl|grep "Timezone" 可以使用 t ...

  6. 关于elasticsearch和kibana的时区和日期问题

    elasticsearch原生支持date类型,json格式通过字符来表示date类型.所以在用json提交日期至elasticsearch的时候,es会隐式转换,把es认为是date类型的字符串直接 ...

  7. 3种方法修改PHP时区

    PHP5.2.4之前的版本无需设置时区.下面是修改PHP时区的三个办法. 1.修改PHP.ini这个文件 找到date.timezone这行,去掉前面的分号,改成: date.timezone = A ...

  8. REDHAT一总复习1 NTP更改时区,并验证时区设置是否正确

    把计算机时区调整到巴哈马(这是个啥地方?听都没听过.) 使用 tzselect  进行确定时区,并进行可对话性的设置,按照对应的序号,射进去就行了. 使用:timedatectl set-timezo ...

  9. 修改linux的系统时间和时区

    时间: date命令将日期设置为2016年12月16日 ----   date -s 12/16/16 将时间设置为9点28分50秒 ----   date -s 09:28:50 时区: tzsel ...

随机推荐

  1. C++的单例模式与线程安全单例模式(懒汉/饿汉)

    1 教科书里的单例模式 我们都很清楚一个简单的单例模式该怎样去实现:构造函数声明为private或protect防止被外部函数实例化,内部保存一个private static的类指针保存唯一的实例,实 ...

  2. SQL SERVER Transactional Replication中添加新表如何不初始化整个快照

    在SQL SERVER的复制(Replication)中,有可能出现由于业务需求变更,需要新增一张表或一些表到已有的复制(发布订阅)当中,这种需求应该是很正常,也很常见的.但是在已有的复制(发布订阅) ...

  3. .NET应用程序调试—原理、工具、方法

    阅读目录: 1.背景介绍 2.基本原理(Windows调试工具箱..NET调试扩展SOS.DLL.SOSEX.DLL) 2.1.Windows调试工具箱 2.2..NET调试扩展包,SOS.DLL.S ...

  4. jQuery 3.0 的 setter/getter 模式

    jQuery 的 setter/getter 共用一个函数,通过是否传参来表明它是何种意义.简单说传参它是 setter,不传它是 getter. 一个函数具有多种意义在编程语言中并不罕见,比如函数重 ...

  5. 全透明Activity

    第一步:在/res/values/styles里面添加如下代码: <style name="translucent"> <item name="andr ...

  6. [WPF系列]-Deep Zoom

        参考 Deep Zoom in Silverlight

  7. POJ1947 Rebuilding Roads[树形背包]

    Rebuilding Roads Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 11495   Accepted: 5276 ...

  8. HDU3466 Proud Merchants[背包DP 条件限制]

    Proud Merchants Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others) ...

  9. 二分法&三分法

    ural History Exam    二分 #include <iostream> #include <cstdlib> using namespace std; //二分 ...

  10. python高级之网络编程

    python高级之网络编程 本节内容 网络通信概念 socket编程 socket模块一些方法 聊天socket实现 远程执行命令及上传文件 socketserver及其源码分析 1.网络通信概念 说 ...