Convert datetime.time to seconds

I have a type object datetime.time. How to convert it to int, representing its duration in seconds? Or a string that I can then convert to a second representation by splitting?

+4
source share
4 answers

You need to convert the object to datetime.timein datetime.timedeltaorder to use total_seconds().

It will return float, not the int asked in the question, but you can easily drop it.

>>> from datetime import datetime, date, time, timedelta
>>> timeobj = time(12, 45)
>>> t = datetime.combine(date.min, timeobj) - datetime.min
>>> isinstance(t, timedelta)
# True
>>> t.total_seconds()
45900.0

Links I am inspired:

+6
source

You can calculate it yourself:

from datetime import datetime

t = datetime.now().time()
seconds = (t.hour * 60 + t.minute) * 60 + t.second
+4
source

, datetime.timedelta datetime.time.

datetime.time .

datetime.timedelta total_seconds(), , .

+2

@Owl Max , timedelta. , timedelta.

, :

import datetime
t = datetime.time(10, 0, 5)
int(datetime.timedelta(hours=t.hour, minutes=t.minute, seconds=t.second).total_seconds())

(ps. )

+1

Source: https://habr.com/ru/post/1680402/


All Articles