Перевод часов в формат

Я получаю время и оно у меня в таком формате

9 
12 

И мне нужно конвертировать данную строку в

09:00
12:00

Пытался сделать это таким способом

from datetime import datetime 
lol = datetime.strptime('9', '%H:%M')

В итоге имею ошибку


Ответы (2 шт):

Автор решения: mazzz3r

Можно сделать гораздо проще, не импортируя при этом datetime

time = 9
print(f"{time:02}:00") # > 09:00
→ Ссылка
Автор решения: insolor

Ну, у вас же в строке только часы, без двоеточия и минут. Значит для разбора этой строки через strptime форматная строка должна быть просто '%H':

from datetime import datetime

lol = datetime.strptime('9', '%H')
print(lol)  # 1900-01-01 09:00:00
print(f"{lol:%H:%M})  # 09:00

Ну и если всегда просто часы в виде числа приходят, можно без strptime обойтись, просто приведя строку к целому числу, потом передать полученное значение в time через параметр hour (если вам нужно только время, то логично использовать datetime.time вместо datetime.datetime):

from datetime import time

hours = '9'
t = time(hour=int(hours))
print(t)  # 09:00:00
print(f"{t:%H:%M}")  # 09:00
→ Ссылка