Tell me more ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I use F-Spot to manage my images. For one set of images, the dates somehow got messed up and they all are marked as September 1st 2007. I'd like to change the date taken information to a different date. How can I do this?

share|improve this question

8 Answers

up vote 13 down vote accepted

jhead is capable of doing this.

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.

share|improve this answer
1  
+1 for ExifTool – Ludwig Weinzierl Jul 20 '09 at 19:48
Recently used jhead to correct and synch the date/time stamps on hundreds of pictures from a family vacation where three cameras all had the data and time incorrectly set. Easy to use and quite useful. – Will M May 9 '10 at 21:00

Picasa has this built-in. Tools => Adjust Date and Time....

share|improve this answer

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.

share|improve this answer

You could try this free tool: Exifer.

share|improve this answer
@RandolphWest Please only leave comments link this if they actually make sense. While this answer isn't perfect, everything else can easily be determined by clicking the link. Everything else that could be included here won't help if the linked page changes n any significant way, because then the software won't be available for download anymore. In fact, including too many details (like a complete feature list) just means the answer quickly becomes out of date if the linked software changes. – Daniel Beck Aug 14 '12 at 9:06
Unhelpful comment deleted. – Randolph West Aug 15 '12 at 19:02

Try FastStone Image Viewer [features, download link 1, download link 2]

a screenshot

share|improve this answer

iPhoto and Aperture both have a time-shift option, for when you're in a new time-zone usually, or the clock is wrong. It can either leave the files unedited (only updating the App's db) or edit the files. Clearly F-Spot needs to borrow this.

share|improve this answer

Exiftool: slow on the command line. (It's written in Perl, so draw your own conclusions there.)

Exifer creates an empty tag or two in files, and not just in the EXIF block. It will also remove some tags written by other tools. As I haven't used it in over a year, I can't be specific as to which ones.

FastStone's stuff, imx, is too slow to keep installed for more than a day or two.

My vote is for Hr. Weinzerl's suggestion: Exiv2.

BZT

share|improve this answer

I use a following script to give images some successive dates. Hope it helps. It expects a directory with the images to be redated as an argument i .e script directory_with_images

#!/bin/bash
HOUR=12
MINUTE=0
DATE=2004:06:20
for file in "$1"/*;
do 
    exiv2 -v -M"set  Exif.Image.DateTime $DATE $(printf %02d $HOUR):$(printf %02d $MINUTE):00" "$file"
    exiv2 -v -M"set  Exif.Photo.DateTimeDigitized $DATE $(printf %02d $HOUR):$(printf %02d $MINUTE):00" "$file"
    exiv2 -v -M"set  Exif.Photo.DateTimeOriginal $DATE $(printf %02d $HOUR):$(printf %02d $MINUTE):00" "$file"
    #sets file timestamp (i.e. filesystem metadata, not image metadata) as well
    exiv2 -v -T "$file"
    if [ $MINUTE = 59 ]; then
        HOUR=$((HOUR + 1))
        MINUTE=0
    else
        MINUTE=$((MINUTE + 1))
    fi
    # this would rename the file as well
    #new_path=`pwd`/new_filename$(printf %02d $HOUR)$(printf %02d $MINUTE).jpg
    #cp "$file" "$new_path"
done
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.