gpt4 book ai didi

python - 使用python表达日期数组的元素之间耗时(以小时分秒为单位)

转载 作者:行者123 更新时间:2023-12-01 03:44:41 24 4
gpt4 key购买 nike

我有使用 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'

我想做的是创建另一个表,其中包含自第一个元素以来耗时,但以小时:分钟:秒表示,如下所示:

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'

关于如何做到这一点的任何想法或链接?

谢谢,格雷戈里

最佳答案

您需要重新排列代码的某些部分才能获得所需的输出。

首先,您应该将时间戳转换为 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']

关于python - 使用python表达日期数组的元素之间耗时(以小时分秒为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39106832/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com