Most digital cameras include one or more date and time tags in the Exif data added to the image files they produce. These tags are:
The format for these tags is "YYYY:MM:DD HH:MM:SS" with the time shown in 24-hour format. The exiftime utility cannot add a tag if it does not already exist in file.
By default, exiftime will simply print out any of the three date and time flags in each input file. The -l flag will produce a listing of each input file in date/time order, suitable for use in further image processing (e.g., production of a Web catalog) when filename ordering is not useful.
The -v flag may be used to vary, or adjust, dates and times. When used with the -w flag, which writes the adjusted date and time to each input file, one may, for example, process a batch of files to adjust for a camera's incorrectly set clock.
When providing an absolute value (rather than a relative adjustment), seconds are in the range 0-59, minutes are in the range 0-59, hours are in the range 0-23, month days are in the range 1-31, week days are in the range 0-6 (Sun-Sat), months are in the range 1-12 (Jan-Dec) and years are in the range 80-38 or 1980-2038.
If val is numeric, one of either y, m, w, d, H, M, or S must be used to specify which part of the date is to be adjusted.
The week day or month may be specified using a name rather than a number. If a name is used with the plus (or minus) sign, the date will be put forwards (or backwards) to the next (previous) date that matches the given week day or month. This will not adjust the date, if the given week day or month is the same as the current one.
When the date is adjusted to a specific value that doesn't actually exist (for example March 26, 1:30 BST 2000 in the Europe/London timezone), the date will be silently adjusted forwards in units of one hour until it reaches a valid time. When the date is adjusted to a specific value that occurs twice (for example October 29, 1:30 2000), the resulting timezone will be set so that the date matches the earlier of the two times. In all cases, daylight savings time considerations are ignored.
Refer to the examples below for further details.
Image Created: 2003:09:12 17:05:37 Image Generated: 2003:09:12 17:05:37 Image Digitized: 2003:09:12 17:05:37
exiftime -tcd example1.jpg
Image Created: 2003:09:12 17:05:37 Image Digitized: 2003:09:12 17:05:37
exiftime -v+3H example1.jpg
will adjust each time forward by three hours and display:
Image Created: 2003:09:12 20:05:37 Image Generated: 2003:09:12 20:05:37 Image Digitized: 2003:09:12 20:05:37
exiftime -v+5d -v-7M -fw -tg *.jpg
will adjust the date ahead five days and the time back seven minutes and write the adjusted date and time to the Image Generated tag without a prompt for confirmation for all files that match "*.jpg". It displays:
example1.jpg: Image Generated: 2003:09:12 17:05:37 -> 2003:09:17 16:58:37 example2.jpg: Image Generated: 2004:01:22 17:07:02 -> 2004:01:27 17:00:02
exiftime -l -tdg *.jpg
will list all files that match "*.jpg", one per line, in ascending timestamp order. It'll attempt to use the following timestamp values, in order: Image Digitized, Image Generated, Image Created, and, finally, the OS's epoch.