Ответ 1
>>> 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'
У меня есть следующие 24-часовые времена:
{'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'}
Как я могу преобразовать это в 12-часовое время?
{'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'}
Я хочу разумно преобразовать "10.30"
в "10.30 AM"
и "22:30"
в "10:30 PM"
. Я могу использовать свою собственную логику, но есть ли способ сделать это разумно без 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'
Ключ к этому коду - использовать библиотечную функцию time.strptime()
для анализа 24-часовых представлений строк в time.struct_time
объект, затем используйте библиотечную функцию time.strftime()
, чтобы отформатировать этот struct_time
в строку желаемого 12-часового формата.
Я предполагаю, что вам не составит труда написать цикл, перебрать значения в dict и разбить строку на две подстроки с одним значением времени каждый.
Для каждой подстроки преобразуйте значение времени с кодом, например:
import time
t = time.strptime(timevalue_24hour, "%H:%M")
timevalue_12hour = time.strftime( "%I:%M %p", t )
Вопрос Преобразование строки в datetime также имеет полезные ответы.
Использование Python strftime% I
ссылка http://strftime.org/