比较Python中未按预期工作的日期

2024-04-25 11:41:57 发布

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

我试图将从csv文件中提取的日期与当前日期进行比较,以检查差异是否大于7天。这是我的代码:

with open (path) as csvfile:
    readcsv = csv.reader(csvfile, delimiter = ',')
    for row in readcsv:
        iso_ts = str(row[3])
        datum = (datetime.datetime.strptime(''.join(iso_ts.rsplit(':', 1)), '%Y-%m-%dT%H:%M:%S%z'))

    current_time = (datetime.datetime.strptime(datetime.datetime.now(),'%Y-%m-%dT%H:%M:%S%z'))

甚至没有比较这些,我得到以下错误

^{pr2}$

我想检查一下,如果来自csv的数据比当前日期早7天,然后做些什么。我知道这两个日期的格式都有问题,但我似乎搞不清到底是什么。如果能解释一下我所缺少的,我将非常感激。在


Tags: 文件csvcsvfilepath代码datetimeaswith
2条回答

^{}接受一个date_string和一个format字符串,并将datestring参数转换为datetime对象。我不认为您需要转换任何东西,您应该能够使用^{}对象将datum与{}进行比较。在

注意,.now()返回一个表示本地时间的朴素的datetime对象。本地时间可能不明确不要用它来比较。我在格式字符串^{} returns a timezone-aware ^{} object on Python 3中看到%z(utc偏移量)。你不能比较天真的和有意识的日期时间对象。使用.now(timezone.utc)创建可用于比较的时区感知当前时间。见Find if 24 hrs have passed between datetimes - Python

您的格式字符串错误。 试试这个:current_time = datetime.datetime.today().strftime("%Y-%b-%dT%H:%M:%S")

相关问题 更多 >