Django的时区设置问题
2024-10-18 23:34:33
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_ZONE
和USE_TZ
USE_TZ
为True
,Django使用系统默认时区,即America/Chicago
,此时TIME_ZONE
不管有没有设置都不起作用。USE_TZ
为False
,TIME_ZONE
为None
,Django会使用默认的America/Chicago
时间。
设置为其它时区,则要具体的程序运行环境。如果是Windows系统,则USE_TZ
为False,
TIME_ZONETIME_ZONE
设置是没用的,Django会使用本机的所使用的时区。如果为其他系统,则使用TIME_ZONE设置的时区------>即USE_TZ = False
,TIME_ZONE = 'Asia/Shanghai'
, 使用上海的UTC
时间。
最新文章
- C#数组,List,Dictionary的相互转换
- 史上最牛js
- mysql在linux下不区分大小写
- MVC初认
- 5分钟实现VS2010整合NUnit进行单元测试
- Navi.Soft30.框架.Mobile.开发手册
- oracle vm virtualbox 如何让虚拟机可以上网
- 关于LINUX文件与目录的问题说明
- Linux 下安装android
- Windows 7妙用 笔记本变无线AP轻松共享
- java面向对象下:JavaXML解析技术
- 必须掌握的Linux命令
- 第八十七节,html5+css3pc端固定布局,大纲算法,section和div,结构分析
- 行内元素为何不能设置margin-top、margin-bottom;padding-top、padding-bottom值
- android中的 Toast 和 AlertDialog
- freemarker写select组件(二十二)
- 设计模式 | 建造者模式/生成器模式(builder)
- java之JVM(一)
- PHP基本随笔
- ASP.NET Web API 2 之文件下载
热门文章
- 搭建Web部署环境
- DQ8通关攻略
- nohup磁盘打满问题排查与解决
- Golang报错mixture of field:value and value initializers
- string转xml
- Mongodb操作之查询(循序渐进对比SQL语句)(转http://www.tuicool.com/articles/UzQj6rF)
- Spring 创建 IOC 容器时加载配置文件的几种方式
- 武汉邀请赛 Key Logger 双向链表
- thinkphp I() 方法
- MyBatis 事务源码分析