如何将时间对象转换为自python午夜以来的秒数?

时间:2015-07-10 11:39:18

标签: python datetime time

我在python中有一个datetime.time对象(没有日期部分),想知道自午夜以来经过了多少秒。 t.hour * 3600 + t.minute * 60 + t.second肯定会奏效,但有更多的pythonic方法吗?

2 个答案:

答案 0 :(得分:3)

不幸的是,您似乎无法从两个timedelta对象中获取datetime.time个对象。但是,您可以构建一个并使用total_seconds()来获取自午夜以来的秒数:

In [63]: t = datetime.time(hour=12, minute=57, second=12)  # for example
In [64]: datetime.timedelta(hours=t.hour, minutes=t.minute,
                            seconds=t.second).total_seconds()
Out[64]: 46632.0

答案 1 :(得分:1)

您可以使用datetime.combine()创建datetime对象,以获取timedelta

from datetime import datetime, timedelta

td = datetime.combine(datetime.min, t) - datetime.min
seconds = td.total_seconds() # Python 2.7+
integer_milliseconds = td // timedelta(milliseconds=1) # Python 3

它支持微秒和任何其他未来datetime.time.resolution