Python中时间转十进制时间

18 投票
3 回答
66445 浏览
提问于 2025-04-16 00:18

我应该用哪个Python的日期时间方法,把HH:MM:SS格式的时间转换成以秒为单位的小数时间呢?这些时间表示的是持续的时间(大多数都少于一分钟),而且和具体的日期没有关系。

3 个回答

4

使用 datetime 模块:

>>> t = datetime.time(12,31,53)
>>> ts = t.hour * 3600 + t.minute * 60 + t.second
>>> print ts
45113
14

如果你说的“十进制时间”是指一个整数秒数,那么你可能想用 datetime.timedelta 这个东西:

>>> import datetime
>>> hhmmss = '02:29:14'
>>> [hours, minutes, seconds] = [int(x) for x in hhmmss.split(':')]
>>> x = datetime.timedelta(hours=hours, minutes=minutes, seconds=seconds)
>>> x
datetime.timedelta(0, 8954)
>>> x.seconds
8954

(如果你其实想要一个 Decimal 类型的,那也很简单可以做到……)

>>> import decimal
>>> decimal.Decimal(x.seconds)
Decimal('8954')
23

在编程中,有时候我们需要处理一些数据,这些数据可能来自不同的地方,比如用户输入、数据库或者其他程序。为了让这些数据更容易使用,我们通常会把它们放在一个叫做“变量”的容器里。变量就像一个盒子,我们可以把东西放进去,也可以随时拿出来。

在使用变量时,我们需要给它们起个名字,这样我们才能记住它们里面装的是什么。比如,我们可以用“年龄”这个名字来表示一个人的年龄,这样在程序中就可以很方便地使用这个变量。

除了存储数据,变量还可以进行一些操作,比如加减乘除等。比如,如果我们有一个表示年龄的变量,我们可以通过简单的数学运算来计算出两个人的年龄差。

总之,变量是编程中非常重要的一个概念,它帮助我们管理和操作数据,让我们的程序更灵活、更强大。

t = "1:12:23"
(h, m, s) = t.split(':')
result = int(h) * 3600 + int(m) * 60 + int(s)

撰写回答