pytz

作者: 不咸的Yan | 来源:发表于2019-08-16 08:49 被阅读0次
  • pytz

django的模型类中使用的 DateTimeField 字段,自动添加下来的携带有时区信息,2019-06-19T03:58:11.937945Z
在我的逻辑中需要对时间进行比较,我使用了datetime.datetime.today()取出的datetime对象默认是没有时区信息的,虽然两个都是datetime对象,但是在比较的时候就会报错
#TypeError: can't compare offset-naive and offset-aware datetimes
这是因为两个时间不属于同一类型,offset-naive是不含时区的类型,而offset-aware是有时区类型,两者自然不能比较。
使用pytz解决,添加时区或者删除时区,一致的datetime对象就可以进行比较

import datetime
import pytz
a = datetime.datetime.today()
#datetime.datetime(2019, 6, 19, 12, 17, 5, 713381)
b = datetime.datetime.today()-datetime.timedelta(days=3)
#datetime.datetime(2019, 6, 16, 12, 18, 32, 654933)
a > b 
#True
a == b
#False
#从django模型中取出的datetime对象
#c = datetime.datetime(2019, 6, 19, 0, 0, tzinfo=<UTC>)
#携带有tzinfo信息
b == c
#False
b > c  报错
#TypeError: can't compare offset-naive and offset-aware datetimes

#对tzinfo信息进行删除
c = c.replace(tzinfo=None)
#datetime.datetime(2019, 6, 19, 0, 0)
c > b
#False  就可以进行比较了

#对tzinfo进行添加
a = a.replace(tzinfo=pytz.timezone('UTC'))
#此时得到的a对象就可以和django模型中取出来的c对象直接进行比较了

相关文章

  • pytz

    提供了两种方式来构建本地时间 localize 用于naive时间转换 astimezone 用于aware时间转...

  • pytz

    pytz django的模型类中使用的 DateTimeField 字段,自动添加下来的携带有时区信息,2019-...

  • 2018-06-27

    python利用pytz创建datetime 由于时区offset多年来有所改变,当利用pytz构建timezon...

  • Python pytz时区转换

    pytz pytz将Olson tz数据库带入Python。该库允许使用Python 2.4或更高版本进行准确的跨...

  • 《利用Python进行数据分析11》-时间序列(2)

    时区处理 使用的第三方库为pytz 获取时区对象:pytz.timezone 本地化:tz_localize 时区...

  • pip安装:Cannot uninstall ''

    Cannot uninstall 'pytz'. It is a distutils installed proj...

  • Python之pytz

    简单介绍 pyhon2.7没有时区模块pytz,如果要使用时区相关的函数,需要安装pytz。在windows和ma...

  • 利用Python进行数据分析(十七)之时区时期处理

    时区处理 在Python中,时区信息来自第三方库pytz,pandas包装了pytz的功能,使用方法如下: pan...

  • python有用的模块

    pytz模块,这个模块给Python提供时区的定义;

  • python pytz timezone

    要获得当前系统的pytz时区, 可以用tz_local, 用pip install tzlocal 安装 from...

网友评论

      本文标题:pytz

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