zoukankan      html  css  js  c++  java
  • Django的时区设置问题

    1.Django的时区问题

      django默认的时区是UTC,平时是没有什么影响的,但是在需要将时间戳转换成本时区的时间或者是获取当前的本地的localtime的时候就出现了问题。之前程序在测试时是运行在Windows环境,所以即使settings.py中的TIME_ZONE使用默认时区,Django也会根据本机的时区使用当前时区时间。然而程序放到linux运行程序时,Django的时区会使用settings.py中的TIME_ZONE设置的时区,所以这时就出现了问题。再有当我用脚本在linux上测试或者直接进入python环境的时候,运行time.localtime(),显示本机所在时区的当前时间。

    '''
      我的django程序中的一部分,这部分功能是将用户的聊天时间戳转化为格式化时间。由于我使用的默认时区UTC,原以为在linux环境中会像windows环境中一样会使用机器设置的时区的时间,
    结果并不是,而是使用了默认时区的时间。
    '''
    import time
    send_time = 1543524392
    day = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(send_time))
    print day  # 2018-11-29 20:46:32--->UTC 代码中打印出来的时间是UTC时间

    2.Django时区设置

    • 在Django的settings中,有两个配置参数是跟时间与时区有关---->TIME_ZONEUSE_TZ
    • USE_TZTrue,Django使用系统默认时区,即America/Chicago,此时TIME_ZONE不管有没有设置都不起作用。
    • USE_TZFalseTIME_ZONENone,Django会使用默认的America/Chicago时间。
    • USE_TZFalse,TIME_ZONE设置为其它时区,则要具体的程序运行环境。如果是Windows系统,则TIME_ZONE设置是没用的,Django会使用本机的所使用的时区。如果为其他系统,则使用TIME_ZONE设置的时区------>即USE_TZ = FalseTIME_ZONE = 'Asia/Shanghai', 使用上海的UTC时间。
  • 相关阅读:
    Gitkraken使用教程
    request.getHeader中区分大小写参数
    MySql 中查询列表中添加序号
    解决windows 下mysql 表名自动转成小写的问题
    MYSQL服务无法启动,服务没有任何错误;解决方法
    idea中设置一键生成方法注释和类注释
    Windows10下安装MySQL8.0.21-64
    navicat连接mysql出现2059错误的解决方法
    解决tomca在eclipse中正常启动,在bin下启动闪退问题
    QT线程的结束
  • 原文地址:https://www.cnblogs.com/sunxiuwen/p/10082027.html
Copyright © 2011-2022 走看看