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对象直接进行比较了
pytz的更多相关文章
- python pytz时区设置模块
如果你的程序要考虑时区,可以使用pytz.pytz官方文档:http://pytz.sourceforge.net/我使用的python版本:3.7.1 datetime模块中有tzinfo相关的东西 ...
- python 通过pytz模块进行时区的转换,获取指定时区的时间
import pytz import time import datetime print(pytz.country_timezones('cn')) # 查询中国所拥有的时区 print(pytz. ...
- python pytz 结合时区的日期操作
有一个安排在2012 年12 月21 日早上9:30 的电话会议,地点在芝加哥.而朋友在印度的班加罗尔,那么他应该在当地时间几点参加这个会议呢? 对几乎所有涉及到时区的问题,你都应该使用pytz 模块 ...
- Python 安装pytz
1. https://pypi.org/project/pytz/#files 2. 下载上图标黄的文件, 3. pip install 4. from pytz import ...
- pytz 格式化北京时间 6分钟问题
使用datetime直接构造时间的时候,设置时区是没有北京时间的,一般来说习惯了linux的同志都会默认用上海时间来代替,这里却有一个问题,如果要进行时区转换,上海时间比北京时间差6分钟... 比如: ...
- pytz库时区的坑(转)
add by zhj: 推荐使用标准库中的dateutil代替pytz 原文:https://www.hongweipeng.com/index.php/archives/1803/ 起步 在djan ...
- ImportError: No module named pytz
xxx@hostname:/opt/xx/cc$ python manage.py runserver Traceback (most recent call last): File , in < ...
- 报错Database returned an invalid value in QuerySet.datetimes(). Are time zone definitions for your database and pytz installed?解决
在django中的setting.py中: LANGUAGE_CODE = 'en-us' TIME_ZONE = 'Asia/Shanghai' #'UTC' USE_I18N = True USE ...
- 解决 django 博客归档 “Are time zone definitions for your database and pytz installed?”的错误
修改 project 中的settings 文件,问题解决! # USE_TZ = True USE_TZ = False # LANGUAGE_CODE = 'en-us' LANGUAGE_COD ...
随机推荐
- 机器学习之Adaboost与XGBoost笔记
提升的概念 提升是一个机器学习技术,可以用于回归和分类问题,它每一步产生一个弱预测模型(如决策树),并加权累加到总模型中:如果每一步的弱预测模型生成都是依据损失函数的梯度方向,则称之为梯度提升(Gra ...
- Android—网络请求
import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; ...
- Bootsrap表格表单及其使用方法
bootstrap的使用 bootstrap中的js插件依赖于jQuery 因此jQuery要在bootstrap之前引入 参考官网标准引入方法和引入样式 排版 标题 Bootstrap和普通的HTM ...
- ALV报表——选择屏幕选项卡
ALV选择屏幕选项卡 运行效果: 代码: *&--------------------------------------------------------------------* *&a ...
- Vue、SPA实现登陆
axios/qs/vue-axios安装及使用步骤 首先我们要下载三个依赖包,方便后面的开发使用需要: npm install axios -S axios是vue2提倡使用的轻量版的ajax.它 ...
- javascript之new操作符
new 运算符做了哪些事情 1.新生成了一个对象 2.链接到原型 3.绑定 this 4.返回新对象 自己实现一个 new function create() { // 创建一个空的对象 let ob ...
- 文件流FileStream的读写
1.FileStream文件流的概念: FileStream 类对文件系统上的文件进行读取.写入.打开和关闭操作,并对其他与文件相关的操作系统句柄进行操作,如管道.标准输入和标准输出.读写操作可以指定 ...
- ftl 列表弄成js数组
例子:ftl 列表:bannerViewUrls var arrayBanner=[<#list bannerViewUrls as list>"${list}"< ...
- Java 之 OutputStreamReader类
OutputStreamReader类 1.概述 转换流 java.io.OutputStreamReader ,是Writer的子类,是从字符流到字节流的桥梁. 它使用指定的字符集将字符编码为字节. ...
- TR-FS00会计科目创建GL_ACCT_MASTER_SAVE
https://blog.csdn.net/z_x_xing_/article/details/90514715 GL_ACCT_MASTER_SAVE 创建总账科目 前台事务代码:FS00 函数 ...