python - 如何检查日期是否是昨天
问题描述
我试图找出昨天和今天之间的区别。如果是昨天,则执行。这是我的代码:
d1 = datetime.datetime.strptime(str(date_posted), "%Y-%m-%d %H:%M:%S")
d2 = datetime.datetime.strptime(str(datetime.datetime.today()), "%Y-%m-%d %H:%M:%S")
difference = abs((d2 - d1).days)
但我不断收到此错误:
Traceback (most recent call last):
File "C:\Users\fatima.arshad\AppData\Local\Continuum\anaconda2\envs\web_scraping\lib\site-packages\twisted\internet\defer.py", line 654, in _runCallbacks
current.result = callback(current.result, *args, **kw)
File "C:/Users/fatima.arshad/PycharmProjects/arabam/DailyArabamSpider.py", line 44, in parse
d2 = datetime.datetime.strptime(str(datetime.datetime.today()), "%Y-%m-%d %H:%M:%S")
File "C:\Users\fatima.arshad\AppData\Local\Continuum\anaconda2\envs\web_scraping\lib\_strptime.py", line 565, in _strptime_datetime
tt, fraction = _strptime(data_string, format)
File "C:\Users\fatima.arshad\AppData\Local\Continuum\anaconda2\envs\web_scraping\lib\_strptime.py", line 365, in _strptime
data_string[found.end():])
ValueError: unconverted data remains: .722653
解决方案
如果您只想获得天数的差异,则无需将日期转换为字符串然后返回日期。
d1 = datetime.datetime.strptime(str(date_posted), "%Y-%m-%d %H:%M:%S")
d2 = datetime.datetime.today()
difference = abs((d2 - d1).days)
如果你想剥离微秒使用.replace()
d = datetime.today()
print(d) # 2020-04-23 18:09:34.039505
print(d.replace(microsecond=0)) # 2020-04-23 18:09:34
话虽如此,使用timedelta.days == 1
确定两个日期是否至少相隔 24 小时。如果您想知道它是否发生在昨天(例如今天的星期四,而其他日期是前一个星期三或更早),请按照用户@Daweo 的建议使用他们的日期进行比较。为了完成,包括在下面:
d1 = datetime.datetime.strptime(str(date_posted), "%Y-%m-%d %H:%M:%S").date()
d2 = datetime.datetime.today().date()
difference = abs((d2 - d1).days)
推荐阅读
- c# - 如何使用外键访问关系表上不同变量的值
- angular - 视频自动播放器离子
- excel - 为什么在包含 Double 的行上执行 VBA Step Over 会导致溢出错误?
- c# - 指定 ON DELETE NO ACTION 为同一个表创建 3 个外键 - 实体框架
- typescript - 返回类型为非空且基于输入类型
- c# - 限制框架在 c# NetCore 中的 SOAP xml 消息中添加可选标签
- python - 在 TensorFlow Functional API 中保存和加载具有相同图形的多个模型
- android - 在 Xamarin 表单中测量字符串大小 (Android)
- node.js - Nodejs没有运行批处理文件或命令
- c# - 如何将 C# AsQueryable() 对象带入内存