O simples programa de linha de comando jhead é ótimo para isso. É totalmente gratuito (e de código aberto) e está facilmente disponível para Windows, Mac ou Linux. Se você não está acostumado a programas de linha de comando, esse é um exemplo não- intimidador, porque não há muito. Você precisa formatar as datas corretamente, mas é fácil fazer isso seguindo os exemplos (consulte a documentação que incluí abaixo).
Ele possui um comando simples de ajuste por horas, mas, para grandes mudanças, também possui uma sintaxe antiga -> nova, que calcula a diferença para você (para que você não precise se preocupar com anos bissextos e assim por diante). Se você ainda tiver a câmera configurada incorretamente à mão e ainda estiver errada, acho útil tirar uma foto de um relógio digital (com sincronização de tempo) - então, considere a data mostrada na imagem como "nova data" e o data nos metadados como "data antiga" para os parâmetros abaixo.
A partir da documentação:
-ta<+|-><timediff>
Adjust time stored in the Exif header by h:mm backwards or for-
wards. Useful when having taken pictures with the wrong time
set on the camera, such as after travelling across time zones,
or when daylight savings time has changed.
This option changes all Date/time fields in the exif header,
including "DateTimeOriginal" (tag 0x9003) and "DateTimeDigi-
tized" (tag 0x9004).
-da<newdate>-<olddate>
Works like -ta, but for specifying large date offsets, to be
used when fixing dates from cameras where the date was set
incorrectly, such as having date and time reset by battery
removal on some cameras
Because different months and years have different numbers of
days in them, a simple offset for months, days, years would lead
to unexpected results at times. The time offset is thus speci-
fied as a difference between two dates, so that jhead can figure
out exactly how many days the timestamp needs to be adjusted by,
including leap years and daylight savings time changes. The
dates are specified as yyyy:mm:dd. For sub-day adjustments, a
time of day can also be included, by specifying yyyy:nn:dd/hh:mm
or yyyy:mm:dd/hh:mm:ss
Examples:
Year on camera was set to 2005 instead of 2004 for pictures
taken in April
jhead -da2004:03:01-2005:03:01
Default camera date is 2002:01:01, and date was reset on
2005:05:29 at 11:21 am
jhead -da2005:05:29/11:21-2002:01:01