如何比较给定日期(字符串)是当前日期和最后 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 - 获取给定地点/时区的当前日期和时间并将其与同一地点的另一个日期/时间进行比较的正确方法
VB.NET - 给定一个日期,我怎样才能得到最后四个星期五的日期?