使用Python减去两个UNIX时间戳时,如何产生人类可读的差异?
这个问题类似于关于使用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的旅程才刚刚开始,如果确实是重复的话,那是因为我没有弄清楚要搜索的内容。
附录
为了准确起见,我最关心的是今年的日历。
-
您可以使用精彩的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
它不需要数周,但是添加起来应该并不难。