© 2011 Brice Center (first posted 2/19/12 ► last updated 2/19/12)
I had a situation where I forgot to set the date & time in DSLR (Nikon D5100), and then proceeded to take hundreds of photos and videos across about a month timeframe. The camera time was exactly 388 days, 6 hrs, 29 min, 46 sec behind actual current time. I needed to do a date shift on all of the photos and videos by this exact amount to get everything corrected. I spent hours looking at different tools and workflows to get the best results without accidental damage or destruction of the photos' EXIF data.
First I tried Picasa, but Picasa has this bad habit of destroying meta data in photos taken with DSLRs. DSLRs have a lot of info embedded in their EXIF tags, and often Picasa will overwrite some of the Manufacturer data that contains details about the camera settings and such that I want to be able to reference. You won't notice the damage if you simply look at the limited metadata that Windows can see, but if you use a more comprehensive EXIF reader, like PhotoME, or your native manufacturer software, you will notice data damaged or missing. Believe me, I spent hours looking into this. I'll write a page on all that research someday.
The best tool I found to shift the Date Taken in the EXIF data of photos is GeoSetter. It has a nice GUI wrapped around the nice command-line program called EXIFTool, which is designed very well. GeoSetter has never destroyed or corrupted important metadata on any of my cameras (Nikon D5100, D300, D70s, D70; Canon 60D, SX230HS; Fujifilm F31fd, F30). GeoSetter also happens to be a very nice Geotagging tool (again, also better than Picasa, since Picasa destroys metadata when it Geotags).
Download GeoSetter here
If it is important to you to have your Date Modified match your Date Taken, then you will want to also get JPGDateChanger, which is a ridiculously easy to use tool that will read your Date Taken, and change your Date Modified to match it exactly. You will use this after using GeoSetter to fix your Date Taken. It is a simple .exe that requires no installation. Just run it when you need it.
Download JPGDateChanger here
More info about the program can be found here
This is the best tool to update your Date Modified for your video files. It is a simple .exe that requires no installation. Just run it when you need it.
I will give much more detail about each step below this, but here is the quick overview.
Photo Step 1. Figure out the difference between camera time and actual time. This will be your offset time. An easy way to do this is shown below.
Photo Step 2. If your region honors Daylight Savings Time (DST), your computer time must be in the same DST state as the photos you're fixing.
Photo Step 3. Use GeoSetter to offset the date by the offset time. You can do this in bulk for all .jpg's
Photo Step 4. (Optional) Use JPGDateChanger to make the Date Modified match the Date Taken. Again, this can be done in bulk.
Photo Step 5. Re-Sync your computer clock back to current time if you had to change it in Step 2.
Video Step 1. Use BulkFileChanger to offset your Date Modified. This may take multiple passes (explanation below).
Figure out the difference between camera time and actual time. This will be your offset time. You will later use GeoSetter to do the actual math. The easiest way to do this is to leave your camera as it was, with the wrong time setting, then take a photograph of a clock showing actual time. I use my computer for this. If I want to be extra precise, I'll sync my computer's time over the internet first.
1. Sync Computer Time with Internet: Click the computer clock; Click Change date and time settings...; Click the Internet Time Tab; Click Change Settings...; Click Update Now; Click OK
2. Click your computer clock again so you will see the seconds. Take a photo. You can use this photo in GeoSetter to automatically determine offset date for all files.
3. Put this photo in the same folder as the pictures you are planning to do a date correction on.
If you have already changed the clock on your camera, you will have to take a best guess of when one of your mis-dated photos was actually taken. You can still use this guess in GeoSetter later to automatically determine the offset time. No manual date math required.
Trust me when I say that you will need to do this. Let's say it is January now, but you just found a batch of photos from last July that need a time correction. If your region honors DST, and your computer system time is current (i.e. January), then you will find that your corrected time will be off by 1 hour when you do your time offset correction with GeoSetter. However, if you set your computer clock back to July, so that it is in the same DST state, then do your time offset correction with GeoSetter/JPGDateChanger/BulkFileChanger, then everything will come out correctly.
So, if you are changing photos taken back in July, and it's now Feb, then manually change your computer clock to July timeframe. However, if it is February, and you just found some photos in January that need correction, then you can leave your computer clock alone.
If you haven't used GeoSetter before, you might want to tweak a setting first. You need to decide if you want GeoSetter to make a backup copy of each photo it modifies, or just overwrite the original. It's default is to make a backup, which means if you modify DSC_0368.jpg, when you save you will a new file called DSC_0368.jpg.original. This is your backup. Just remove the .original, and it's a regular .jpg again. I don't like this behavior, since if I want a backup, I'll will make one myself. Otherwise, I don't want harddrive clutter. So to turn off this behavior, open Geosetter, click File > Settings, go to the File Settings tab, and check the box that says Overwrite Original File when Saving Changes.
After that is done, you're ready to do the real work of updating the Date Taken.
Open GeoSetter and navigate to the folder where your photos are (or alternately, you can navigate to them in Explorer, then right click a photo, and click the GeoSetter context menu, and select Browse, which will open that folder in GeoSetter).
In the left pane of GeoSetter, type CTRL+A to select all photos (or Images > Select All). All photos should be selected in blue.
Then type CTRL+E to enter tag Editing mode (or Images > Edit Data). You will be presented with this window.
Now on the left side under the preview, you need to select the photo that you took of the clock (DSC_068.jpg for me). Then click the Radio button next to Time Shift, and set the Target Date to be the computer's date and time shown in the photo. Important: Make sure you select AM and PM correctly! You will notice the Shift Values will auto calculate...give that a sanity check, and write it down so we can use it later when we correct the video dates. Important: Now click Set Current Values For All Selected Images, or else your changes will only be applied to one photo.
After clicking Set Current Values For All Selected Images, you will be presented with another window. The values that are being changed will be shown in bold. Just click Changed, and it will populate the checkboxes of only the tag info that has changed. Then click OK.
Now back in the Edit screen, verify that all filenames show as bold (i.e. they will all be modified), and click OK.
Now all of your photos will be have their text turn red. If they are not, for instance if only one is red, then you missed a step above...most likely the Set Current Values For All Selected Images step. If all is well, then either type CTRL+S, or Images > Save Changes to permanently apply the time changes to all files. If prompted, select the proper time zone (most likely just choose the Use System Setting option). You can then close GeoSetter.
Double click JPGDateChanger.exe to launch it. It will launch with this window (just make sure it is set to change the Date Modified):
In Windows Explorer, navigate to your folder with the changed images. Then use CTRL+A to select all of them, and simply drag them onto the JPGDateChanger window. All of the files will be updated to make their Date Modified date match the Date Taken dates that you just updated with GeoSetter.
Double click BulkFileChanger.exe to launch it. In Windows Explorer, navigate to the folder containing the movies you need to modify. Drag the movies into the BulkFileChanger Window.
In BulkFileChanger, use CTRL+A to select all of the movie files. Then either tap F6, or Actions > Change Time / Attributes.