Python 如何将time.asctime字符串转换为相对时间(例如40分钟前)

Python 如何将time.asctime字符串转换为相对时间(例如40分钟前),python,time,Python,Time,我使用git python生成了一个时间字符串: for com in git.Repo().iter_commits(): print(time.asctime(time.localtime(com.committed_date))) 有没有可能达到像相对时间戳这样的效果,比如我可以使用git日志的一些漂亮的格式从git日志中获得 19b9451 - naming (6 hours ago) <myname> 19b9451-命名(6小时前) 产生于 git log

我使用git python生成了一个时间字符串:

for com in git.Repo().iter_commits():
    print(time.asctime(time.localtime(com.committed_date)))
有没有可能达到像相对时间戳这样的效果,比如我可以使用git日志的一些漂亮的格式从git日志中获得

19b9451 - naming (6 hours ago) <myname>
19b9451-命名(6小时前)
产生于

 git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
git log--graph--pretty=格式:'%Cred%h%Creset-%C(黄色)%d%Creset%s%Cgreen(%cr)%C(粗体蓝色)%Creset'--abbrev commit
看起来有点人性化,但找不到简单的方法。正在寻找一种惯用的方法。我想我可以破解datetime的许多函数,但我更喜欢简单的一行解决方案,如果可能的话

逻辑:

  • 将字符串转换为
    datetime.datetime
    对象
  • 获取当前
    datetime.datetime
    对象。线索:现在查找
  • 减去这两个对象以获得
    datetime.timedelta
    对象
  • datetime.timedelta
    对象进行四舍五入
  • 打印结果
  • 如果您在尝试遵循我的步骤时发现问题,请发布您的代码,我们将帮助您