python - 如何在 python 中比较 ISO-8601 日期
问题描述
我有一个 ISO-8601 格式的日期
date="2018-03-13T17:22:20.065Z"
我想以格式查找当前UTC
时间。iso9621
我发现了一些代码片段,例如datetime.datetime.utcnow().isoformat()
这给了我们以下结果
2018-06-12T08:19:28.954375
我想查看提供的日期是否超过 30 天。
我试图解决它,如this question所示
import datetime
import dateutil.parser
insertion_date = dateutil.parser.parse('2018-03-13T17:22:20.065Z')
diffretiation=datetime.datetime.utcnow().isoformat() - insertion_date
print diffretiation
print insertion_date
if diffretiation.days>30:
print "The insertion date is older than 30 days"
else:
print "The insertion date is not older than 30 days"
我在这里发现了以下错误
Traceback (most recent call last):
File "test2.py", line 5, in <module>
right_now_30_days_ago=datetime.datetime.utcnow().isoformat() - insertion_date
TypeError: unsupported operand type(s) for -: 'str' and 'datetime.datetime'
任何帮助在这里都会很棒
解决方案
您datetime.datetime.utcnow()
不知道时区,并使其知道使用pytz
:
import datetime
import dateutil.parser
import pytz
insertion_date = dateutil.parser.parse('2018-03-13T17:22:20.065Z')
diffretiation = pytz.utc.localize(datetime.datetime.utcnow()) - insertion_date
print diffretiation
print insertion_date
if diffretiation.days>30:
print "The insertion date is older than 30 days"
else:
print "The insertion date is not older than 30 days"
#The insertion date is older than 30 days
PSdatetime.datetime.utcnow().isoformat()
返回一个字符串,这就是您遇到的错误。
推荐阅读
- angular - 订阅可观察者不会执行
- javascript - 在 php 中使用 LocalStorage 变量
- nginx - Kubernetes 入口更新与部署
- scala - 将单列划分为多列的最佳方法 Dataframe Spark Scala
- charts - 第一步的谷歌阶梯面积图错误
- environment-variables - Terraform 版本更新
- php - 如何使用 ACF 在自定义页面模板中正确显示照片?
- ffmpeg - ffmpeg 方法设置失败:461 不支持的传输
- c++ - 在消除 DPI 和 SV 程序中的编译错误方面需要帮助
- php - 试图获取非对象的属性'page_slug'(查看:)Laravel 6.*