将日期与过去的一天进行比较

2024-04-16 15:20:25 发布

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

x=['2020-05-12 20:16', '2020-05-12 20:16', '2020-05-10 20:11', '2020-05-10 20:07', '2020-05-11 20:03', '2020-05-8 20:02', '2020-05-8 20:02', '2020-05-9 20:02',]
@staticmethod    
def compare_time(post_time):
            date_object = datetime.strptime(post_time, "%Y-%m-%d %H:%M")
            past = datetime.now() - date_object

如何编辑我的函数,使其返回True如果日期不早于昨天(在当前时间的24小时内),否则返回False,我觉得我已经完成了一半,但不确定下一步该做什么


2条回答

您需要量化2个datetime对象之间的差异,^{}这里是

A timedelta object represents a duration, the difference between two dates or times.

您希望我们的持续时间低于24h/1d,因此需要< timedelta(days=1)< timedelta(hours=24)

def compare_time(post_time):
    date_object = datetime.strptime(post_time, "%Y-%m-%d %H:%M")
    past = datetime.now() - date_object
    return past < timedelta(days=1) # from datetime import timedelta

根据1天的timedelta测试差异datetime.now() - date_object

from datetime import datetime, timedelta

x = ['2020-05-12 20:16', '2020-05-12 20:16', '2020-05-10 20:11', 
     '2020-05-10 20:07', '2020-05-11 20:03', '2020-05-8 20:02', 
     '2020-05-8 20:02', '2020-05-9 20:02',]

def compare_time(post_time):
    date_object = datetime.strptime(post_time, "%Y-%m-%d %H:%M")
    return (datetime.now() - date_object) < timedelta(days=1)

for t in x:
    print(t, compare_time(t))
# 2020-05-12 20:16 True
# 2020-05-12 20:16 True
# 2020-05-10 20:11 False
# 2020-05-10 20:07 False
# 2020-05-11 20:03 False
# 2020-05-8 20:02 False
# 2020-05-8 20:02 False
# 2020-05-9 20:02 False

相关问题 更多 >