首页 > 解决方案 > 从奇数 Dd HH:MM:SS.mm 格式中提取时间数据

问题描述

我正在尝试根据 python 形式导入不是真正的时间、日期或日期时间的实验时间数据。它是 Dd HH:MM:SS.m 的时间流逝格式,其中第一个时间点为 0d 00:00:00.00,26 小时后的点为 1d 02:00:00.00。

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

标签: pythondatetimetimedelta

解决方案


要将您的“奇数”格式转换为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)

推荐阅读