美文网首页python开发
python 开发 mysql 时区问题

python 开发 mysql 时区问题

作者: 宝宝家的隔壁老王 | 来源:发表于2017-08-13 23:34 被阅读44次

最近给客户部署项目时,由于项目在开发过程中 pythonnow()utcnow() 的混合使用,导致部署环境变化时,数据库中的数据在时间展示上出现了bug

1、时区设置

  • 主要为标准时区UTC和北京时区CST,其中CST=UTC+8
  • linux 系统时区设置,点我
  • mysql 时区设置,点我

2、项目开发中的使用

  • 数据库中数据筛选的时间设置
  • 定时任务的时间设置

总结

  • 所有的Linux系统文件系统底层存储的都是UTC时间,也就是说都是自1970年0时0分0秒以来的UTC标准时间的秒数。
  • mysql 底层存储的时间为UTC时间,和设置的时区无关,而时区仅仅是在读取的时候,用以时间转化。
  • python 使用utcnow()获取的为UTC时间,使用now()获取的为系统时区的时间。

使用建议

  • mysql时区设置为本地时区
    • 原因:因为数据库中的数据本身就是为展示使用,在开发的项目无国际化需求的时候,建议使用本地时区也就是CST,此时前端可以直接展示。
  • 系统时区:尽量和mysql时区保持一致
    • 原因:1、mysql使用UTC时区时,系统也使用UTC时区,此时前端的时间展示统一进行+8h处理;2、mysql使用CST时区时,系统也使用CST时区,虽然只要mysql使用CST时区时,前端即可直接显示,不用处理,但是此时 pythonnow()utcnow()值相同,均比CST8h,在同数据库进行比较时,需要使用+8h处理,简直自找麻烦。
  • 定时任务:使用CSTUTC均可,可自行选择。

相关文章

  • python 开发 mysql 时区问题

    最近给客户部署项目时,由于项目在开发过程中 python 的 now() 和 utcnow() 的混合使用,导致部...

  • mysql时区问题

    mysql时区问题 查询mysql时区 我在使用mysql时,与实际的时间相差了8小时 通过命令查出mysql的时...

  • mysql 时间总结

    本文包含如下问题: 1 mysql如何参看时间 2 mysql如何查看当前时区 3 mysql如何修改当前时区 4...

  • The server time zone value 'Öйú

    mysql默认服务器时区问题:修改jdbc:mysql://localhost:3306/test?useUnic...

  • mysql时区问题

    前提背景1.mysql-connector-java的版本号8.0.21 1.在北京时间【Thu Dec 16 ...

  • mysql 时区问题

    问题 插入时间到数据库中,会少13个小时(有时候是11个小时) 读取出来,则会自动加上少了的时间,读到的Date对...

  • Mysql时区问题

    MySQL默认时区为UTC,我们属于东八区时间,和UTC存在八个小时时差。在做时间相关操作的时候,会出现不一致问题...

  • MySQL时区问题

    今天遇到一个很奇怪的问题,在代码里面通过MyBatis 能查询到今天的数据,但是将打印的SQL放到DataGrip...

  • mysql的时区错误问题: The server time zo

    mysql的时区错误问题: The server time zone value 'Öйú±ê׼ʱ¼ä' i...

  • MySQL数据库修改时间、时区

    MySQL数据库修改时间、时区 mysql默认使用的SYSTEM时区,即EST时区,查询相关资料可知,EST时区要...

网友评论

本文标题:python 开发 mysql 时区问题

本文链接:https://www.haomeiwen.com/subject/dehyrxtx.html