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时间。

原文地址:https://www.cnblogs.com/kakawith/p/10058921.html

时间: 2024-11-08 06:41:03

Django的时区设置问题的相关文章

关于django的时区设置

Django如果开启了Time Zone功能,则所有的存储和内部处理,甚至包括直接print显示全都是UTC的.只有通过模板进行表单输入/渲染输出的时候,才会执行UTC本地时间的转换. 所以我建议后台处理时间的时候,最好完全使用UTC,不要考虑本地时间的存在.而显示时间的时候,也避免手动转换,尽量使用Django模板系统代劳. 启用 USE_TZ = True 后,处理时间方面,有两条 "黄金法则": 保证存储到数据库中的是 UTC 时间: 在函数之间传递时间参数时,确保时间已经转换成

关于 django 的时区设置与MySQL 时间相差8小时

django在settings配置中设置过TIME_ZONE = 'Asia/Shanghai'后,显示界面正常了,但是向数据库写入时间的时候,会比正常时间早8小时,在后端提示错误 RuntimeWarning: DateTimeField 模型类.字段 received a naive datetime (2018-xx-xx xx:xx:xx.137670) while time zone support is active. RuntimeWarning) 解决办法: 在settings.

Django 1.11 正确的时区设置

Django 1.11的时区设置和原来的不同了: 文件:setting.py LANGUAGE_CODE = 'zh-CN' TIME_ZONE = 'Asia/Shanghai' USE_I18N = True USE_L10N = True USE_TZ = True 原来这么写,没问题,但是1.11不可以这么写!否则服务器就要报错哦!正确写法是: LANGUAGE_CODE = 'zh-Hans' TIME_ZONE = 'Asia/Shanghai' USE_I18N = True US

Django时区设置的郁闷

第一次在windows下看到这个设置的时候,就设置成Ubuntu上时区设置的字符串“Asia/Shanghai”,结果报错通不过,最后记不清楚从哪儿查的,改成GMT+8. 最近把应用放到Linux上做一些生产环境下的问题解决,发现上面那个时区设置有问题,查了一下,linux上又得改回成“Asia/Shanghai”.我去,两个系统能不能稍微标准化一下.

PYTHON 与 DJANGO 的时区问题

在编码中牵扯到时间问题的时候,总是容易被时区问题搞混,一直以来,都是反复试验应付过去,今天终于搞清楚了个中缘由,一个心结也得以化解. Python 的时区问题 datetime.today() / datetime.now()这两个函数获得的是当前的系统时间,但得到的datetime对象中的tzinfo是空的,即使系统中设置了时区. datetime.utcnow()这个函数获得当前的utc时间,应该是根据当前系统时间和时区来计算的.例如系统时间为14:00,时区为 Asia/Shanghai

Apache下部署Django日志时区显示不正确的问题

django 1.5的settings.py 里面默认的时区设置与1.8的默认不一样 1.8下默认TIME_ZONE = 'UTC' 如果部署到Apache上,access.log下时间如 [23/Jun/2017:04:15:05 +0000] 那么与本地时区不一致, 改成TIME_ZONE = 'Asin/Shanghai' 日志显示东八区的时间 24/Jun/2017:11:47:40 +0800

Django 1.6 最佳实践: 如何设置django项目的设置(settings.py)和部署文件(requirements.txt)

Django 1.6 最佳实践: 如何设置django项目的设置(settings.py)和部署文件(requirements.txt) 作者: Desmond Chen,发布日期: 2014-05-17, 修改日期: 2014-05-18 在Django 1.6中的settings.py中可以修改130多项设置, 但大多数都继承自默认值. 设置是在web服务器启动时首次载入的, 服务器重启时重新载入, 因此, 程序员们应尽量避免修改正式服务器上使用的settings.py文件. 以下是一些我们

linux下的时间及时区设置

一.时间设置及同步 1修改系统时间 #date -s 06/18/14 #date -s 14:20:50 2命令查看.设置硬件时间 #hwclock  --show 或者clock  --show #设置硬件时间 hwclock --set --date="06/18/14 14:55" 或者# clock --set --date="06/18/14 14:55" 3同步系统及硬件时钟 # hwclock --hctosys 或者 # clock --hctos

ubuntu server 时区设置问题解决

1.当执行此命令的时候 ntpdate us.pool.ntp.org 出现一下错误提示 name server cannot be used: Temporary failure in name resolution 2.解决办法(添加DNS服务器) vi /etc/resolv.conf 添加: nameserver 8.8.4.4 3.国内常用NTP服务器地址及IP2011-09-07 15:06:08210.72.145.44 (国家授时中心服务器IP地址)133.100.11.8 日本