Nos contextos assinalados, as duas expressões estão corretas.
A preposição durante exprime «duração ou permanência de algo num tempo determinado» (Dicionário Houaiss da Língua Portuguesa), tendo, portanto, valor temporal. Esta preposição assinala a duração de uma dada situação nas frases em que se conjuga com um complemento que corresponda a «uma expressão denotadora de quantidade de tempo» (Raposo et al., Gramática do Português. Fundação Calouste Gulbenkian, p. 1563), como se observa em
(1) «Contratei-o durante duas horas.»
(2) «Colaborou com o jornal durante um ano.»
Nestas situações, a preposição durante pode alternar com a preposição por que pode, também ela, introduzir expressões que indicam tempo:
(3) «Contratei-o por duas horas.»
(4) «Colaborou com o jornal por um ano.»
Existe a indicação de que a preposição por «introduz expressões que localizam uma situação de maneira vaga ou aproximada no sistema das horas e minutos» (id., ib., p. 1555), o que parece apontar para o facto de a utilização da preposição durante ser preferível quando se pretende expressar uma informação temporal com maior rigor.