如何用Python获取时间的秒数
这是我的代码:
last_time = get_last_time()
now = time.time() - last_time
minute =
seconds =
print 'Next time you add blood is '+minute+':'+seconds
因为每5分钟要恢复一次血量,所以只需要记录分钟和秒钟。
谢谢!
3 个回答
4
在Python 3中,
>>import time
>>time.localtime()
time.struct_time(tm_year=2018, tm_mon=7, tm_mday=16, tm_hour=1, tm_min=51, tm_sec=39, tm_wday=0, tm_yday=197, tm_isdst=0)
你可以这样提取分钟和秒,
>>time.localtime().tm_min
51
>>time.localtime().tm_sec
39
我觉得,这样可以解决你的问题。
8
我认为两个时间对象之间的差值会返回一个叫做 timedelta 的对象。这个对象有一个 .total_seconds()
的方法。你需要自己把这些转换成分钟和秒:
minutes = total_secs % 60
seconds = total_secs - (minutes * 60)
当你在Python中遇到不知如何处理的值时,可以尝试在交互式Python环境中进行测试。使用 dir(obj)
可以查看这个对象的所有属性和方法,使用 help(obj)
可以查看它的文档说明。
更新:我刚刚检查了一下,发现 time.time()
返回的并不是一个 time
对象,而是一个表示自纪元以来经过的秒数的浮点数。虽然我之前说的仍然适用,但你获取 total_secs
的方式有所不同:
total_secs = round(time.time() - last_time)
所以简单来说:
last_time = get_last_time()
time_diff = round(time.time() - last_time)
minute = time_diff / 60
seconds = time_diff % 60 # Same as time_diff - (minutes * 60)
print 'Next time you add blood is '+minute+':'+seconds
21
这就是基本的时间计算。如果你知道一分钟有60秒,那你自己就能算出来了:
minute = int(now / 60)
seconds = int(now % 60)