Вы можете немного очистить свой существующий код с помощью генератора (эквивалент карты):
generatedtime = datetime.datetime( *(int(x) for x in
(data[4][:4], data[4][4:6], data[4][6:], data[5][:2], data[5][2:4],data[5][4:6])
) )
или даже, если вы сумасшедший, как лиса, вы можете сделать утверждение даты и времени еще чище (за счет добавления нелепой строки):
slices = ( (4, slice(4)), (4, slice(4,6) ), (4, slice(6,None)), (5, slice(2) ), (5, slice(2,4) ), (5, slice(4,6)) )
generatedtime = datetime.datetime( *(int(data[i][s]) for (i,s) in slices) )