2016-08-24 4 views
0

Я пытаюсь извлечь дату и время из следующей строки:Преобразование строки в дату/час на отметке 24hour: ValueError непрореагировавший данные остаются: 4

string = '3/24/2016 24'  # 24 is the hour 

Используя следующий код:

result = datetime.strptime(string, '%m/%d/%Y %H') 

Однако я столкнулся с следующим сообщением об ошибке: ValueError: оставлены неотвержденные данные: 4 Ведущий: ли strptime не распознает 24 как час (0 -> 23 против 1 -> 24)? И если да, то как мне исправить это, поскольку это строка?

ответ

2

Я полагаю, чтобы справиться с угловым корпусом 24, вы можете разобрать часть даты в качестве даты, а затем заменить «час» по модулю 24, например:

d, t = '3/24/2016 24'.partition(' ')[::2] 
dt = datetime.strptime(d, '%m/%d/%Y').replace(hour=int(t) % 24) 
# datetime.datetime(2016, 3, 24, 0, 0)