如何在python中比较ISO8601日期

2024-10-03 17:23:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个ISO-8601格式的日期

date="2018-03-13T17:22:20.065Z"

我想用iso9621格式找到当前的UTC时间。 我发现了一些代码片段,比如datetime.datetime.utcnow().isoformat()

结果如下

^{pr2}$

我想知道提供的日期是否超过30天。在

我试着解决这个问题 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'

任何帮助都会很好


Tags: theimportparserdatetimedateis格式days
1条回答
网友
1楼 · 发布于 2024-10-03 17:23:42

您的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

p.S.datetime.datetime.utcnow().isoformat()返回一个字符串,这就是您遇到的错误。在

相关问题 更多 >