I have the following 24-hour times:
{'Wed': '10:30 - 21:00', 'Sun': '10:30 - 21:00', 'Thu': '10:30 - 21:00',
'Mon': '10:30 - 21:00', 'Fri': '10:30 - 22:00', 'Tue': '10:30 - 21:00',
'Sat': '10:30 - 22:00'}
How can I convert this to 12-hour time?
{'Wed': '10:30 AM - 09:00 PM', 'Sun': '10:30 AM - 09:00 PM',
'Thu': '10:30 AM - 09:00 PM', 'Mon': '10:30 AM - 09:00 PM',
'Fri': '10:30 AM- 10:00 PM', 'Tue': '10:30 AM- 09:00 PM',
'Sat': '10:30 AM - 11:00 PM'}
I want to intelligently convert "10.30"
to "10.30 AM"
& "22:30"
to "10:30 PM"
. I can do using my own logic but is there a way to do this intelligently without if
... elif
?
>>> from datetime import datetime
>>> d = datetime.strptime("10:30", "%H:%M")
>>> d.strftime("%I:%M %p")
'10:30 AM'
>>> d = datetime.strptime("22:30", "%H:%M")
>>> d.strftime("%I:%M %p")
'10:30 PM'
The key to this code is to use the library function time.strptime()
to parse the 24-hour string representations into a time.struct_time
object, then use library function time.strftime()
to format this struct_time
into a string of your desired 12-hour format.
I'll assume you have no trouble writing a loop, to iterate through the values in the dict and to break the string into two substrings with one time value each.
For each substring, convert the time value with code like:
import time
t = time.strptime(timevalue_24hour, "%H:%M")
timevalue_12hour = time.strftime( "%I:%M %p", t )
The question, Converting string into datetime, also has helpful answers.
>>> from datetime import datetime
>>> s = datetime.strptime("13:30", "%H:%M")
>>> print(s.strftime("%r"))
01:30:00 PM
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With