如何比较给定日期(字符串)是当前日期和最后 8 个日期? [关闭]

Posted

技术标签:

【中文标题】如何比较给定日期(字符串)是当前日期和最后 8 个日期? [关闭]【英文标题】:how to compare given date (string) is current date to last 8 date or not? [closed] 【发布时间】:2022-01-07 20:19:18 【问题描述】:

我在字符串中有一个日期。如何从过去 8 天算出这个日期 REFRESH = ("2021-11-25 00:27:23") 到当前日期

from datetime import datetime
from datetime import timedelta
REFRESH =  ("2021-11-25 00:27:23")
today = datetime.now()
n_days_ago = today - timedelta(days=7)
print(today, n_days_ago)

我被困在这里了。

我需要最近 8 天的当前日期的刷新日期是否为真等数据。 “通过”

【问题讨论】:

【参考方案1】:

您需要将字符串转换为datetime 对象才能进行比较,对此有用的函数是strptime(),它需要2 个参数:字符串和字符串的日期格式。

接下来使用date() 函数只获取没有时间的日期,因为您想比较日期。

例子:

from datetime import datetime, timedelta

REFRESH = "2021-11-24 00:27:23"
today = datetime.today()
n_days_ago = today - timedelta(days=7)
if n_days_ago.date() == datetime.strptime(REFRESH, "%Y-%m-%d %H:%M:%S").date():
    print(True)
else:
    print(False)

【讨论】:

谢谢哥们 这个也很有用 @AjithMsM 不客气。我不确定你到底想从问题中得到什么,准确比较它们或>/<,但逻辑是一样的。【参考方案2】:

如果您的意图是打印当前日期和从 REFRESH 过去的天数,我认为这个可以工作

refresh_as_datetime=datetime.strptime(REFRESH,"%Y-%m-%d %H:%M:%S")
delta = datetime.now()-refresh_as_datetime
if (delta.days>=8):
    print("not matching") # Refresh date is older than 8 days
else:
    print("it's matching") #  Refresh date is newer than 8 days

【讨论】:

不,我的意图是不打印当前日期,因为日期(刷新)是从现在到过去 8 天之内。如果给定日期与过去 8 天不匹配,我需要像“匹配”一样打印,如果不是“不匹配”好友。感谢您的快速重播 我已根据您的信息编辑了我的答案。 谢谢哥们,这个按预期工作

以上是关于如何比较给定日期(字符串)是当前日期和最后 8 个日期? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

iPhone - 获取给定地点/时区的当前日期和时间并将其与同一地点的另一个日期/时间进行比较的正确方法

C#比较日期时间和当前日期时间[关闭]

VB.NET - 给定一个日期,我怎样才能得到最后四个星期五的日期?

从firestore查询数据时,如何将保存的字符串格式的日期与当前日期进行比较?

sql怎么讲整型转换为日期型好麻烦!!!

Java - 在指定的给定月份 - 年份范围内打印每个月的第一个和最后一个日期