zoukankan      html  css  js  c++  java
  • 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');

    未完待续...

     

  • 相关阅读:
    java 单例设计模式
    JAVAWEB监听器(二)
    pxe无人值守安装linux机器笔记----摘抄
    Ganglia3.1.7安装与配置(收录)
    Hadoop Sentry 学习
    安装和配置Sentry(收录)
    sqoop 的使用 -20160410
    深度分析如何在Hadoop中控制Map的数量(摘抄)
    CDH,CM下载
    大数据培训班 cloudera公司讲师面对面授课 CCDH CCAH CCP
  • 原文地址:https://www.cnblogs.com/toxiaonan/p/3699455.html
Copyright © 2011-2022 走看看