Convert datetime to time in python

Question:

I have:

test_date = "2017-07-20-10-30"

and then use:

day = datetime.strptime(test_date[11:], "%H-%M")

which gives me

1900-01-01 10:30:00

How do I just get: 10:30:00 as type datetime.time?

Asked By: Mat.S

||

Answers:

You can use the strftime method of the datetime object like this:

day.strftime('%H:%M')

More information here: https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior

Ok, I misunderstood. Use day.time() to get a time object.

Answered By: Cory Madden

you can parse your string using datetime.strptime to a datetime object and then call .time() on that to get the time:

from datetime import datetime

strg = "2017-07-20-10-30"

dt = datetime.strptime(strg, '%Y-%m-%d-%H-%M')
tme = dt.time()
print(tme)  # 10:30:00

the strftime() and strptime() Behavior is well documented.

of course you can also chain these calls:

tme = datetime.strptime(strg, '%Y-%m-%d-%H-%M').time()
Answered By: hiro protagonist
Categories: questions Tags:
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.