如何将时间对象转换为自 python 午夜以来的秒数?
How to convert a time object to seconds since midnight in python?
我在 python 中有一个 datetime.time
对象(没有日期部分),我想知道自午夜以来已经过去了多少秒。 t.hour * 3600 + t.minute * 60 + t.second
肯定可以,但是有没有更 pythonic 的方法?
不幸的是,您似乎无法从两个 datetime.time
对象中获取一个 timedelta
对象。但是,您可以构建一个并将其与 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
您可以使用 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
。
我在 python 中有一个 datetime.time
对象(没有日期部分),我想知道自午夜以来已经过去了多少秒。 t.hour * 3600 + t.minute * 60 + t.second
肯定可以,但是有没有更 pythonic 的方法?
不幸的是,您似乎无法从两个 datetime.time
对象中获取一个 timedelta
对象。但是,您可以构建一个并将其与 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
您可以使用 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
。