EXIFTIME(1)
β¨ EXIFTIME(1) β¨
okay bestie, welcome to exiftime from the General Commands Manual β the lil utility that reads, adjusts, and orders your photos by their Exif date & time tags. it's giving "my camera clock was wrong for a whole vacation and now i need to fix 400 jpgs" energy, and honestly? iconic. let's get into it π
πΈ NAME πΈ
exiftime β display or adjust date & time Exif tags; list files ordered by their Exif date & time tags
π SYNOPSIS π
exiftime [-filqw] [-s delim] [-t[acdg]] [-v[+|-]val[ymwdHMS]] file ...
π¦ DESCRIPTION π¦
okay so when you run exiftime with no arguments at all, it just displays the Exif date and time tags inside each input file, straight to standard output. cute, right? but if you do give it options, then depending on what you picked, it'll either work on only the tags you chose, adjust the date and time, write an adjusted time into each file, or list each file in ascending order by date and time. pick your fighter π
most digital cameras tuck one or more date and time tags into the Exif data they slap onto the image files they produce. these are the tags, bestie:
- Image Created β the date and time the image was created or changed. this is the most common tag.
- Image Generated β the date and time the original image data was generated (i.e., when the picture was actually taken).
- Image Digitized β the date and time the image was stored as digital data.
the format for these tags is "YYYY:MM:DD HH:MM:SS" with the time shown in 24-hour format. and no cap: exiftime cannot add a tag if it does not already exist in file. it's not a miracle worker, it's a tag adjuster π
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. slay.
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. the group-chat-to-real-life pipeline fr fr π«Ά
β¨ OPTIONS β¨
-fβ Write adjusted date and time tags without prompting for confirmation. no asking, just doing. main character energy.-iβ Output a prompt to standard error before overwriting a date and time tag with the adjusted value. If the response from the standard input begins with'y'or'Y', the tag is overwritten. This option is default behavior. yes bestie, the polite default is to ask first.-lβ List each input file in ascending order by timestamp. By default, it uses the Image Created tag. In the absence of an Image Created tag, first Image Generated then Image Digitized are used. Alternatively, the-tflag may be used to specify the timestamp preference for ordering. If no date and time tags are present, the OS's epoch is used. > This flag overrides all others but the-tflag. π she's powerful.-qβ Do not output details of a date and time adjustment to standard out when using the-wflag. stealth mode π§-sβ Separate field name and value with the string delim. The default is': '. so likeImage Created: 2003:09:12 17:05:37β that's the default vibe.-tβ Select the date and time tags for display or adjustment when followed by one or more ofa(all tags),c(Image Created),d(Image Digitized), org(Image Generated). stack 'em like friendship bracelets π-vβ Adjust the date and time tags' second, minute, hour, month day, week day, month or year according to val. If val is preceded with a plus or minus sign, the date is adjusted forwards or backwards according to the remaining string; otherwise the relevant part of the date is set. The date can be adjusted as many times as required using these flags. Flags are processed in the order given.
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. π the DST of it all.
Refer to the examples below for further details. β¬οΈ
-wβ Write the adjusted date and time tags. By default, any of the three date and time tags present in the file are adjusted; otherwise, only those specified with the-tflag are adjusted. committing to the bit, love that for us.
π EXAMPLES π
the command
exiftime example1.jpg
will display:
Image Created: 2003:09:12 17:05:37
Image Generated: 2003:09:12 17:05:37
Image Digitized: 2003:09:12 17:05:37
the command
exiftime -tcd example1.jpg
will display:
Image Created: 2003:09:12 17:05:37
Image Digitized: 2003:09:12 17:05:37
the command
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
the command
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
the command
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. fallback queen π
π DIAGNOSTICS π
The exiftime utility exits 0 on success and 1 if an error occurs. binary. no in-between, periodt.
π₯ SEE ALSO π₯
β STANDARDS β
The exiftime utility was developed using the 2003 draft Exif standard, version 2.21 (http://tsc.jeita.or.jp/). old but gold π«Ά
π BUGS π
- Does not support the Exif tags
SubsecTime,SubsecTimeOriginal, orSubsecTimeDigitized. - Does not support manufacturer-specific date and time tags.
not her fault, the standard said no π
π AUTHOR π
The exiftime utility and this man page were written by Eric M. Johnston <emj@postal.net>. The time adjustment functionality and documentation were derived from portions of FreeBSD's date(1) command by Brian Somers <brian@Awfulhak.org>. giving credit where credit is due, as we always do π
and that's the whole page bestie!! this lil cutie lives in the General Commands Manual and signs off as EXIFTIME(1) at the bottom β same badge it wears up top. now go fix that camera clock, you've got this β¨ππ¦
π¦ where this page comes from
- debian bookworm: exiftags 1.01-7 Β· BSD-4-Clause
- debian trixie: exiftags 1.01-7 Β· BSD-4-Clause
- ubuntu jammy: exiftags 1.01-7 Β· BSD-4-Clause
- ubuntu noble: exiftags 1.01-7 Β· BSD-4-Clause
- ubuntu questing: exiftags 1.01-8
- ubuntu resolute: exiftags 1.01-8build1 Β· BSD-4-Clause
- ubuntu stonking: exiftags 1.01-8build1 Β· BSD-4-Clause
- Copyright (c) 2004-2007, Eric M. Johnston <emj@postal.net>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms