zoukankan      html  css  js  c++  java
  • pytz

    • 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对象直接进行比较了
    
  • 相关阅读:
    发送带SMTP身份认证的电子邮件
    将class文件打包成可执行文件
    迈入本本一族
    关于Java的一些 工具,类库,框架......
    Java中用Servlet容器实现程序监听
    用JDOM读写XML
    Firefox丰富多彩的插件
    DIV居中——不大不小的问题
    羽绒外套
    pku1469 COURSES
  • 原文地址:https://www.cnblogs.com/cizao/p/11484365.html
Copyright © 2011-2022 走看看