有没有一种方法可以使用datetime将字符串转换为毫秒,而无需使用timedelta?

问题描述 投票:0回答:1

我正在尝试将包含时间(“%H:%M:%S.%f”)的字符串转换为等效毫秒的整数。复杂的是,时间是FFmpeg的输出,这是音频文件中的一点。我需要获取字符串表示的时间的毫秒数。 DateTime中的timestamp方法距离epoche数毫秒,从我开始时起没有另一个时间戳,这不好。

例如:t =“ 00:05:52.654321”应转换为:i = 352654321

完成此操作的最佳方法是什么?

这是我想出的方法。

def _convert_string_to_int(self, s) -> int:
    begin = datetime.datetime(1900,1,1)
    end = datetime.datetime.strptime(s, self._ffmpeg_format_string)
    return int((end - begin).total_seconds() * 1000000)

感觉像真的没有必要使用timedelta。

python-3.x datetime timedelta
1个回答
0
投票

毫秒数本质上是时间interval,因此有充分的理由解释为什么datetime.timedelta实例具有total_seconds方法,而datetime.datetimedatetime.datedatetime.time不具有方法。] >

原则上,您可以使用datetime.datetime.time(end)获得具有包括hourminutesecondmicrosecond的属性的对象,然后使用它们构造自午夜以来经过的时间的算术表达式。同一天。但是,支持这种时间间隔的方法正是您已经使用的timedelta方法。

© www.soinside.com 2019 - 2024. All rights reserved.