2016-06-21 3 views
0

из моего кода на Python, я получил приведенный список, как показано ниже.конвертировать 12-часовой формат времени в формат 24 часа из python

list1 = [{'start': 'Mon12', 'end': '3:30'}, {'start': '7', 'end': 
'10:30'}] 

Здесь мне нужно преобразовать вышеуказанный список1 в формат 24 часа, как показано ниже.

list2 = [{'start': 12, 'end': 1530}, {'start': 1900, 'end': 2230}] 

Как это сделать в python?

+9

, как вы будете различать, что '3:30' является '15: 30' не '3:30'? – Jerzyk

+0

Должен ли list1 действительно содержать «Mon12», или он должен быть «12»? – andrew

+0

он должен содержать «Mon12» – user1335606

ответ

0

Во-первых, вы, вероятно, должны различать am/pm, как указано в комментариях выше.

Однако если бы вы знали все эти времена были вечера, предложили свой список вывода выше, то вы могли бы перебирать каждое значение зачистки нежелательных символов и добавить 1200, как показано ниже:

list1 = [{'start' : 'Mon12', 'end' : '3:30'}, 
    {'start' : '7', 'end' : '10:30'}] 

def shift24(listofdict): 
    shift = 1200 
    resultlist = listofdict 
    # loop through list of dictionaries, then through each dictionary 
    for d in resultlist: 
     for key in d: 

     # create a mask by stripping each value of numbers 
     # (uses a list comp of numerical ASCII characters) 

     mask = d[key].strip(''.join([chr(x) for x in range(48,58)])) 

     # use that mask to get just the numbers 

     maskstrip = d[key].replace(mask,'') 

     # evaluate the length of string and convert to right format 
     # assuming if len(str) < 3: we just have the hours and need 
     # to mulitply by 100 

     if len(maskstrip) < 3: 
      result = ('%04d' % (int(maskstrip) * 10**2)) 
     else: 
      result = ('%04d' % int(maskstrip)) 

     # shift these values by 1200 hours and return list 
     #use str() if you want to output strings not integers 

     d[key] = int(result) + shift 

    return resultlist 

print(shift24(list1)) 

Выход будет :

[{'start': 2400, 'end': 1530}, {'start': 1900, 'end': 2230}] 

Надежда, что помогает, изменения относительно того, что соответствует вашим потребностям

Смежные вопросы