在python中提取字符串中的时间值/减法

时间:2018-03-07 19:51:41

标签: python python-3.x

我有一个名为“时间”的字符串,格式"01:20:23 01:25:36"min:second:millisecond

我需要使用这两个时间值进行减法。

结果应为00:05:13(5秒和13毫秒)

我怎样才能在Python中执行此操作?

2 个答案:

答案 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'(注意秒和毫秒之间的冒号)来表示minutessecondsmilliseconds以使您的示例输入有效,尽管它通常代表%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])