最初我制作了这段代码,将日期转换为人类可读时间:
a = datetime.datetime.strptime(time, "%Y-%m-%d %H:%M:%S.%f")
b = datetime.datetime.now()
c = b - a
days, hours, minutes, seconds = int(c.days), int(c.seconds // 3600), int(c.seconds % 3600 / 60.0), int(c.seconds % 60.0)
return days, hours, minutes, seconds
EXAMPLE OUTPUT: 1 days, 4 hours, 24 minutes, 37 seconds
Run Code Online (Sandbox Code Playgroud)
而我正试图使用纪元时间,但我不知道如何计算天数等等.
a = last_epoch #last epoch recorded
b = time.time() #current epoch time
c = b - a #returns seconds
hours = c // 3600 / 24 #the only thing I managed to figure …
Run Code Online (Sandbox Code Playgroud) 我给出了这样的日期字符串:
Mon Jun 28 10:51:07 2010
Fri Jun 18 10:18:43 2010
Wed Dec 15 09:18:43 2010
Run Code Online (Sandbox Code Playgroud)
什么是方便的python方式来计算天数的差异?假设时区是相同的.
这些字符串由linux命令返回.
编辑:谢谢,这么多好的答案
我正在生成给定秒数的时间量.这是我很快想出来的.它运作良好,但它非常难看.
想不出任何使这更优雅的技巧(没有让它复杂或依赖于这个和那个),但也许这里的人有一些提示.
谢谢!
def humanizeTime(seconds):
if seconds < 60:
return "%d seconds" % int(round(seconds))
else:
minutes = seconds / 60.0
if minutes < 60:
return "%d minutes %d seconds" % divmod(seconds, 60)
else:
hours = minutes / 60.0
if hours < 24:
return "%d hours %d minutes" % divmod(minutes, 60)
else:
days = hours / 24.0
if days < 7:
return "%d days" % int(round(days))
else:
weeks = days / 7.0
if weeks < 4:
return "%d weeks" % int(round(weeks)) …
Run Code Online (Sandbox Code Playgroud)