繁体   English   中英

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

[英]How to convert a time object to seconds since midnight in python?

我在python中有一个datetime.time对象(无日期部分),想找出自午夜以来经过了几秒钟。 t.hour * 3600 + t.minute * 60 + t.second当然可以工作,但是还有更Python的方法吗?

不幸的是,似乎您无法从两个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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM