从奇数Dd HH:MM:SS.mm格式中提取时间数据

时间:2018-12-18 21:53:04

标签: python datetime timedelta

我正在尝试根据python形式主义导入实验时间数据,该数据实际上不是时间,日期或日期时间。它是一种经过时间的格式,如Dd HH:MM:SS.m,其中第一个时间点为0d 00:00:00.00,而26小时后的点为1d 02:00:00.00。

有没有一种方法可以使用datetime模块来提取适当的时间信息,而无需硬编码用于日期的字符串搜索并将24的倍数添加到小时计数器?

1 个答案:

答案 0 :(得分:1)

要将“奇数”格式转换为datetime.timedelta对象,请尝试:

from datetime import timedelta
import re

input = '1d 02:00:00.00'


def to_timedelta(input):
    reg = re.search('([0-9])+d ([0-9]){2}:([0-9]){2}:([0-9]){2}\.([0-9]){2}', input)
    ints = tuple(int(t) for t in reg.groups())
    return timedelta(days=ints[0],
                     hours=ints[1],
                     minutes=ints[2],
                     seconds=ints[3],
                     milliseconds=ints[4])

td = to_timedelta(input)
print(td)