Ive been trying to use time.strptime(string1,\'%H:%M\')
, with no success
How can I get the following:
Input Output
3:14AM -> 03:
You're missing %p
(Locale’s equivalent of either AM or PM).
time.strptime(string1,'%H:%M%p')
Use %I
for 12 hour times and %p
for the am
or pm
as follows:
from datetime import datetime
for t in ["3:14AM", "9:33PM", "12:21AM", "12:15PM"]:
print(datetime.strptime(t, '%I:%M%p').strftime("%H:%M"))
Giving you the following output:
03:14
21:33
00:21
12:15
The formats used are documented in strftime() and strptime() Behavior
The problem requires that you first strptime
using %I
for the 12 hour time and adding the directive %p
for AM or PM to get a time object; altogther '%I:%M%p'
. Then use strftime
to format the time object into a string:
Trials:
>>> tm = time.strptime('12:33AM', '%I:%M%p')
>>> time.strftime('%H:%M', tm)
'00:33'
>>> tm = time.strptime('9:33PM', '%H:%M%p')
>>> time.strftime('%H:%M', tm)
'09:33'
Doc reference: https://docs.python.org/2/library/time.html