Форум сайта python.su
1
Эта функция возвращает время из наносекунд в часы минуты секунды милесекунды:
def convert_time(t): s, ns = divmod(t, 1000000000) m, s = divmod(s, 60) end_res = ['00:', '00:', '00:', '00'] res = '' if m < 60: if len(str(m)) < 2: end_res[1] = '0'+str(m)+':' else: end_res[1] = str(m)+':' if len(str(s)) < 2: end_res[2] = '0'+str(s)+':' else: end_res[2] = str(s)+':' try: end_res[3] = str(round(ns/1000000000)) except IndexError: end_res[3] = '00' else: h, m = divmod(m, 60) if len(str(h)) < 2: end_res[0] = '0'+str(h)+':' else: end_res[0] = str(h)+':' if len(str(m)) < 2: end_res[1] = '0'+str(m)+':' else: end_res[1] = str(m)+':' if len(str(s)) < 2: end_res[2] = '0'+str(s)+':' else: end_res[2] = str(s)+':' end_res[3] = str(round(ns/1000000000)) for x in range(0, 4): res += end_res[x] print(res)
list ['00:','00:','00:','00:']
Отредактировано ivsatel (Фев. 26, 2015 16:31:05)
Офлайн
26
Через datetime можно сделать
import datetime def convert_time(t): dt = datetime.datetime.fromtimestamp(t/1e9) mytime = dt.strftime('%H:%M:%S:%f')[:-4].split(':') return map(lambda x: '%s:' % x, mytime)
Офлайн
1
ajib6ept
Почему-то вместо двух секунд возвращает еще и 3-и часа
import datetime def convert_time(t): dt = datetime.datetime.fromtimestamp(t/1e9) mytime = dt.strftime('%H:%M:%S:%f')[:-4].split(':') return map(lambda x: '%s:' % x, mytime) a = convert_time(2497123419) for x in a: print(x)
Офлайн
26
Видимо часовой пояс, сейчас проверил через utcfromtimestamp, час не появляется.
dt = datetime.datetime.utcfromtimestamp(t/1e9)
Офлайн
1
ajib6eptСпасибо!
Видимо часовой пояс, сейчас проверил через utcfromtimestamp, час не появляется.
Офлайн