How do I batch change the date taken information in EXIF data?
jhead is capable of doing this.
Let's say you know a certain picture was taken on 2017-04-19 16:20
but the current date is showing as 2007-09-01 00:15
, you can adjust all jpg
pictures in a folder to the correct time by doing:
jhead -da2017:04:19/16:20-2007:09:01/00:15 *.jpg
Here is an extract from the manual:
DATE / TIME MANIPULATION:
-ft Set file modification time to Exif time
-dsft Set Exif time to file modification time
-n[format-string]
Rename files according to date. Uses exif date if present, file
date otherwise. If the optional format-string is not supplied,
the format is mmdd-hhmmss. If a format-string is given, it is
is passed to the 'strftime' function for formatting
In addition to strftime format codes:
'%f' as part of the string will include the original file name
'%i' will include a sequence number, starting from 1. You can
You can specify '%03i' for example to get leading zeros.
This feature is useful for ordering files from multiple digicams to
sequence of taking. Only renames files whose names are mostly
numerical (as assigned by digicam)
The '.jpg' is automatically added to the end of the name. If the
destination name already exists, a letter or digit is added to
the end of the name to make it unique.
-nf[format-string]
Same as -n, but rename regardless of original name
-a (Windows only) Rename files with same name but different extension
Use together with -n to rename .AVI files from exif in .THM files
for example
-ta<+|->h[:mm[:ss]]
Adjust time by h:mm backwards or forwards. Useful when having
taken pictures with the wrong time set on the camera, such as when
traveling across time zones or DST changes. Dates can be adjusted
by offsetting by 24 hours or more. For large date adjustments,
use the -da option
-da<date>-<date>
Adjust date by large amounts. This is used to fix photos from
cameras where the date got set back to the default camera date
by accident or battery removal.
To deal with different months and years having different numbers of
days, a simple date-month-year offset would result in unexpected
results. Instead, the difference is specified as desired date
minus original date. Date is specified as yyyy:mm:dd or as date
and time in the format yyyy:mm:dd/hh:mm:ss
-ts<time> Set the Exif internal time to <time>. <time> is in the format
yyyy:mm:dd-hh:mm:ss
-ds<date> Set the Exif internal date. <date> is in the format YYYY:MM:DD
or YYYY:MM or YYYY
An even more powerful option is ExifTool.
Picasa has this built-in. Tools => Adjust Date and Time....
exiv2 is a command line tool to manipulate exif data. Supported image formats are JPEG, Canon CRW and Canon THM. PNG is read-only.
If you want to set the file date to the exif date you can use exiv2 with the following option.
-t Set the file timestamp according to the Exif create timestamp in addition to renaming the file (overrides -k). This option is only used with the ’rename’ action.