使用 python 以小时分秒表示日期数组元素之间经过的时间
Express time elapsed between element of an array of date in hour min second using python
我有一个使用os.path.getmtime
获得的文件创建时间列表
time_creation_sorted
Out[45]:
array([ 1.47133334e+09, 1.47133437e+09, 1.47133494e+09,
1.47133520e+09, 1.47133577e+09, 1.47133615e+09,
1.47133617e+09, 1.47133625e+09, 1.47133647e+09])
我知道如何在时分秒内转换这些元素。
datetime.fromtimestamp(time_creation_sorted[1]).strftime('%H:%M:%S')
Out[62]: '09:59:26'
我想做的是创建另一个 table,其中包含自第一个元素以来经过的时间,但用 hour:min:sec 表示,它看起来像:
array(['00:00:00','00:16:36',...])
但我还没有设法找到如何做到这一点。天真地考虑 time_creation_sorted 的元素之间的差异并尝试转换为 hour:min:sec 并没有给出合乎逻辑的东西:
datetime.fromtimestamp(time_creation_sorted[1]-time_creation_sorted[0]).strftime('%H:%M:%S')
Out[67]: '01:17:02'
关于如何做到这一点有任何想法或link吗?
谢谢,
格雷戈里
查看 timedelta 对象,它给出了两个日期或时间之间的差异
https://docs.python.org/2/library/datetime.html#timedelta-objects
您需要重新排列代码的某些部分以获得所需的输出。
首先,您应该将时间戳转换为 datetime
对象,这些差异导致所谓的 timedelta
对象。这些 timedelta
对象的 __str__()
表示正是您想要的:
from datetime import datetime
tstamps = [1.47133334e+09, 1.47133437e+09, 1.47133494e+09, 1.47133520e+09, 1.47133577e+09, 1.47133615e+09, 1.47133617e+09, 1.47133625e+09, 1.47133647e+09]
tstamps = [datetime.fromtimestamp(stamp) for stamp in tstamps]
tstamps_relative = [(t - tstamps[0]).__str__() for t in tstamps]
print(tstamps_relative)
给予:
['0:00:00', '0:17:10', '0:26:40', '0:31:00', '0:40:30', '0:46:50', '0:47:10', '0:48:30', '0:52:10']
我有一个使用os.path.getmtime
获得的文件创建时间列表time_creation_sorted
Out[45]:
array([ 1.47133334e+09, 1.47133437e+09, 1.47133494e+09,
1.47133520e+09, 1.47133577e+09, 1.47133615e+09,
1.47133617e+09, 1.47133625e+09, 1.47133647e+09])
我知道如何在时分秒内转换这些元素。
datetime.fromtimestamp(time_creation_sorted[1]).strftime('%H:%M:%S')
Out[62]: '09:59:26'
我想做的是创建另一个 table,其中包含自第一个元素以来经过的时间,但用 hour:min:sec 表示,它看起来像:
array(['00:00:00','00:16:36',...])
但我还没有设法找到如何做到这一点。天真地考虑 time_creation_sorted 的元素之间的差异并尝试转换为 hour:min:sec 并没有给出合乎逻辑的东西:
datetime.fromtimestamp(time_creation_sorted[1]-time_creation_sorted[0]).strftime('%H:%M:%S')
Out[67]: '01:17:02'
关于如何做到这一点有任何想法或link吗?
谢谢, 格雷戈里
查看 timedelta 对象,它给出了两个日期或时间之间的差异
https://docs.python.org/2/library/datetime.html#timedelta-objects
您需要重新排列代码的某些部分以获得所需的输出。
首先,您应该将时间戳转换为 datetime
对象,这些差异导致所谓的 timedelta
对象。这些 timedelta
对象的 __str__()
表示正是您想要的:
from datetime import datetime
tstamps = [1.47133334e+09, 1.47133437e+09, 1.47133494e+09, 1.47133520e+09, 1.47133577e+09, 1.47133615e+09, 1.47133617e+09, 1.47133625e+09, 1.47133647e+09]
tstamps = [datetime.fromtimestamp(stamp) for stamp in tstamps]
tstamps_relative = [(t - tstamps[0]).__str__() for t in tstamps]
print(tstamps_relative)
给予:
['0:00:00', '0:17:10', '0:26:40', '0:31:00', '0:40:30', '0:46:50', '0:47:10', '0:48:30', '0:52:10']