pythondatetimepython-3.xpython-2.7string-formatting

How can I convert 24 hour time to 12 hour time?


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 - 10: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?


Solution

  • >>> 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'