Python:十进制转换为时间格式

Python:十进制转换为时间格式,python,datetime,decimal,time-format,Python,Datetime,Decimal,Time Format,我想将十进制时间列表(HH,HHH)转换为时间格式HH:MM:SS 16. , 16.00000381, 16.00000572, 16.00000954, 16.00001144, 16.00001335, 16.00001717, 16.00001907, 16.00002098, 16.0000248 , 16.00002861, 16.00003052, 16.00003433, 16.00003624, 16.00003815, 16.000041

我想将十进制时间列表(HH,HHH)转换为时间格式HH:MM:SS

16.       ,   16.00000381,  16.00000572,  16.00000954,
16.00001144,  16.00001335,  16.00001717,  16.00001907,
16.00002098,  16.0000248 ,  16.00002861,  16.00003052,
16.00003433,  16.00003624,  16.00003815,  16.00004196,
16.00004387,  16.00004768,  16.00004959,  16.00005341
有没有办法用python实现这一点


谢谢

假设这些值代表小时:

In [86]: import datetime as DT
In [87]: data = [16.       ,   16.00000381,  16.00000572,  16.00000954,
16.00001144,  16.00001335,  16.00001717,  16.00001907,
16.00002098,  16.0000248 ,  16.00002861,  16.00003052,
16.00003433,  16.00003624,  16.00003815,  16.00004196,
16.00004387,  16.00004768,  16.00004959,  16.00005341]
   ....:    ....:    ....:    ....: 
In [88]: map(str, [DT.timedelta(seconds=x*60*60.0) for x in data])
Out[88]: 
['16:00:00',
 '16:00:00.013716',
 '16:00:00.020592',
 '16:00:00.034344',...
 '16:00:00.157932',
 '16:00:00.171648',
 '16:00:00.178524',
 '16:00:00.192276']

假设这些值代表小时数:

In [86]: import datetime as DT
In [87]: data = [16.       ,   16.00000381,  16.00000572,  16.00000954,
16.00001144,  16.00001335,  16.00001717,  16.00001907,
16.00002098,  16.0000248 ,  16.00002861,  16.00003052,
16.00003433,  16.00003624,  16.00003815,  16.00004196,
16.00004387,  16.00004768,  16.00004959,  16.00005341]
   ....:    ....:    ....:    ....: 
In [88]: map(str, [DT.timedelta(seconds=x*60*60.0) for x in data])
Out[88]: 
['16:00:00',
 '16:00:00.013716',
 '16:00:00.020592',
 '16:00:00.034344',...
 '16:00:00.157932',
 '16:00:00.171648',
 '16:00:00.178524',
 '16:00:00.192276']
一次:

import datetime
x = 21.234768653
hour = int(x)
minute = int((x - int(x))*60.0)
second = int(((x - int(x))*60 - int((x - int(x))*60.0))*60.0)
(datetime.time(hour, minute, second)).strftime('%H:%M:%S')
要查看时间列表,请执行以下操作:

times = [(datetime.time(int(x), int((x - int(x))*60.0), int(((x - int(x)) * 60 - int((x - int(x))*60.0))*60.0))).strftime('%H:%M:%S') for x in time_list]
一次:

import datetime
x = 21.234768653
hour = int(x)
minute = int((x - int(x))*60.0)
second = int(((x - int(x))*60 - int((x - int(x))*60.0))*60.0)
(datetime.time(hour, minute, second)).strftime('%H:%M:%S')
要查看时间列表,请执行以下操作:

times = [(datetime.time(int(x), int((x - int(x))*60.0), int(((x - int(x)) * 60 - int((x - int(x))*60.0))*60.0))).strftime('%H:%M:%S') for x in time_list]

在上面的数据16.0001144中,16代表什么和.00001144代表什么?16.00000381是带小数的小时,我可以将每个元素转换为秒乘以3600,但这样做很复杂,以时间格式HH:MM:SS:ms(ms=毫秒)进行排列例如,16.00001144是一个16:00:00:41.18,在上面的数据16.0001144中,16代表什么和.00001144代表什么?16.00000381是小时及其小数,我可以将每个元素转换为秒乘以3600,但这样做很复杂,以时间格式HH:MM:SS:ms(ms=毫秒)排列例如,16.00001144是一个16:00:00:41.18抱歉,我有点不清楚,这是正确的UNUTBU,值是小时,我想将它们转换为HH:MM:SS:ms(ms=毫秒)@nandhos:
timedelta()
具有
.microseconds
属性。相关:抱歉,我有点不清楚,这是正确的UNUTBU,值是小时,我想将它们转换为HH:MM:SS:ms(ms=毫秒)@nandhos:
timedelta()
具有
。微秒
属性。相关的: