使用Python减去两个UNIX时间戳时,如何产生人类可读的差异?

发布于 2021-01-29 15:07:31

这个问题类似于关于使用Python减去日期的问题,但并不完全相同。我不是在处理字符串,我必须弄清楚两个纪元时间戳之间的差异,并以人类可读的格式产生差异。

例如:

32 Seconds
17 Minutes
22.3 Hours
1.25 Days
3.5 Weeks
2 Months
4.25 Years

另外,我想表达这样的区别:

4 years, 6 months, 3 weeks, 4 days, 6 hours 21 minutes and 15 seconds

我认为我无法使用strptime,因为我正在处理两个时期的差值。我可以写一些东西来做到这一点,但是我很确定已经写了一些可以使用的东西。

哪个模块合适?我只是想念东西time吗?我进入Python的旅程才刚刚开始,如果确实是重复的话,那是因为我没有弄清楚要搜索的内容。

附录

为了准确起见,我最关心的是今年的日历。

关注者
0
被浏览
90
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以使用精彩的dateutil模块及其relativedelta类:

    import datetime
    import dateutil.relativedelta
    
    dt1 = datetime.datetime.fromtimestamp(123456789) # 1973-11-29 22:33:09
    dt2 = datetime.datetime.fromtimestamp(234567890) # 1977-06-07 23:44:50
    rd = dateutil.relativedelta.relativedelta (dt2, dt1)
    
    print "%d years, %d months, %d days, %d hours, %d minutes and %d seconds" % (rd.years, rd.months, rd.days, rd.hours, rd.minutes, rd.seconds)
    # 3 years, 6 months, 9 days, 1 hours, 11 minutes and 41 seconds
    

    它不需要数周,但是添加起来应该并不难。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看