El simple programa de línea de comandos jhead es excelente para esto. Es completamente gratuito (y de código abierto) y está fácilmente disponible para Windows, Mac o Linux. Si no estás acostumbrado a los programas de línea de comandos, este es un programa bastante no intimidante porque no hay mucho. Debe formatear las fechas correctamente, pero es fácil hacerlo siguiendo los ejemplos (consulte la documentación que he incluido a continuación).
Tiene un simple comando de ajuste por horas, pero para grandes cambios también tiene una sintaxis antigua -> nueva que calcula la diferencia por usted (para que no tenga que preocuparse por los años bisiestos, etc.). Si tiene la cámara mal configurada todavía a mano y todavía está mal, me resulta útil tomar una foto de un reloj digital (sincronizado en el tiempo); luego, tome la fecha que se muestra en la imagen como "nueva fecha" y el fecha en los metadatos como "fecha antigua" para los siguientes parámetros.
De la documentación:
-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