我有一个名为“时间”的字符串,格式"01:20:23 01:25:36"
为min:second:millisecond
。
我需要使用这两个时间值进行减法。
结果应为00:05:13
(5秒和13毫秒)
我怎样才能在Python中执行此操作?
答案 0 :(得分:5)
使用datetime
:
from datetime import datetime
time1, time2 = [datetime.strptime(x, '%M:%S:%f') for x in "01:20:23 01:25:36".split()]
print(time2 - time1)
输出:
0:00:05.130000
我不得不使用'%M:%S:%f'
(注意秒和毫秒之间的冒号)来表示minutes
,seconds
和milliseconds
以使您的示例输入有效,尽管它通常代表%M:%S.%f
。在制作这些琴弦时需要考虑的事情。
答案 1 :(得分:0)
你会想要使用一个可以处理时间而不是编写自己的转换器的软件包,因为所有边缘情况都是时间。在这里,我使用虚拟年份,并将两个字符串作为它们发生的实际日期。
import numpy as np
np.datetime64('2000-01-01T01:25:36') - np.datetime64('2000-01-01T01:20:23')
如果您使用上面给出的格式完全格式化的数字不止一次这样做:
mystring = "01:20:23 01:25:36"
# Split the string at the space
split = mystring.split(" ")
# Make two new strings
header = "2000-01-01T"
np.datetime64(header+split[1]) - np.datetime64(header+split[0])