Django时区和时差问题

2015/01/12   
分类:  blog    python    django   

刚在做一个当前时间与数据库存储时间比较的功能,结果总是出错。

发现原因是地区时差问题:

settings.py中

TIME_ZONE = 'Asia/Shanghai'
USE_TZ = True

那么这样存在数据库中的时间会是UTC时间,比北京时间晚8个小时。

views.py中

#我这里这个获取的确是系统时间,但是有人说应该是UTC时间
datetime.datetime.now()

#正确的获取UTC时间
datetime.datetime.utcnow()

时间的比较方法

  • 由于设置了Time zone,所以不能从数据库时间还要格式化才能做比较
db_table.time.replace(tzinfo=None)#但是这样获取的时UTC时间
  • 时间的比较

timedelta时间大小比较,参数:days,hours,minutes,seconds

time_now = datetime.datetime.utcnow()
time_pre = telVerify.time.replace(tzinfo=None)
if time_now - time_pre < datetime.timedelta(minutes = 5):
    pass#时间差5分钟

本文地址 http://www.0kai.net/blog/2015/01/12/19-django-time-zome.html,转载请注明!