python - 时间字符串和没有年份的当前时间之间的差异
问题描述
我想确定日期字符串和当前时间之间的差异。问题是时间字符串不包含年份(但当前日期时间包含,所以年份变化会带来麻烦吗?)
这是我当前的代码:
date_parsed = datetime.strptime('Fri Apr 27 19:09:53', '%a %b %d %H:%M:%S')
current_time = datetime.now()
解决方案
我们可以假设这date_parsed
发生在过去 365 天,对吧?
在这种情况下,用于.replace()
更改该日期的年份,将其与当前日期进行比较,并根据该比较的结果调整年份:如果日期在现在之后,则应该调整解析的日期,否则,它是行:
from datetime import datetime
current_time = datetime.now()
date_parsed = datetime.strptime('Fri Apr 27 14:09:53', '%a %b %d %H:%M:%S').replace(year=current_time.year)
if date_parsed > current_time:
date_parsed = date_parsed.replace(year=current_time.year - 1)
print(date_parsed, current_time, current_time - date_parsed)
例如,“过去”中的日期:
2018-04-27 14:09:53 2018-04-27 18:28:10.484371 4:18:17.484371
例如,在“未来”中有一个日期:
2017-04-30 14:09:53 2018-04-27 18:30:48.864598 362 days, 4:20:55.864598
推荐阅读
- javascript - ServiceWorker / 缓存 / 设置 TTL
- r - rpart 警告消息,然后没有形成适当的 rpart 图
- javascript - 如何在javascript中将缓冲区转换为图像src
- jsf - 从 FacesContext 设置时,焦点在 Chrome 中不起作用
- python - 在 step 函数中获取 AWS 状态机执行 ARN
- r - 使用cowplot 拼凑图时颜色渐变不正确
- r - 分组并计算从 t-1 年到 t 年的文本数据的余弦相似度?
- bash - SHELL - IF 语句中的 AND 操作
- python - 气流网络服务器已启动,但 UI 未在浏览器中显示
- c# - TimeZoneInfo.ConvertTimeFromUtc 未在已部署的 Azure Webjob 上正确应用 DST