If you take a lot of pictures while travelling, you will come across the timezone issue sooner or later. What would you set your camera’s clock to? UTC? Local timezone? Local timezone plus Daylight Saving Time? Even if you opt for UTC – like I do – you would still want to have some reference to local time.

New York City lies in the EST (Eastern Standard Time, UTC-5) zone, also known as EDT when DST rules (UTC-4).
Unfortunately, there is a big metadata issue, due to the fact that the predominant EXIF standard does not provide for timezones in the timestamp tags. This may get particularly confusing if your workflow includes geotagging. Here is a suggestion how to set up a workaround using ExifTool and Automator.
Which Timezone?
Let us start with a quick detour and have a look at the concept of timezones.
The need for standardised timezones arose with the railways and their demand for synchronised timetables. Before that, local time was taken from local daylight periods and thus was different from town to town. Today, all timezones refer to Greenwich Mean Time (GMT), now mostly called Coordinated Universal Time (UTC).
The Prime Meridian in Greenwich/U.K. lies within the UTC zone, while the timezones to the east get positive values, e.g. UTC+2, and those to the west are negative, e.g. UTC-5. In metadata timestamps, those identifiers are usually represented by an extension to the local time indicating the offset in hours and minutes (e.g. +02:00 or -05:00). Most timezones are +/- 1 hour from their neighbours.
When daylight saving time (DST) was introduced, a modification to those identifiers was necessary: one hour is added to the UTC tag. Not only is the whole concept of DST highly controversial, it also makes reading times more complicated. If you saw an image tagged with +01:00 (UTC+1) you would have to check the date first to find out whether it was taken in Continental Europe or in summertime UK. Even travelling within the same timezone may require more than one identifier because not all countries use DST, e.g. Iceland which is on the Western European timezone just like the UK.
This is why I recommend shooting with your camera set to UTC, and only afterwards adjusting to the local timezone as described below.
The Trouble With EXIF Timestamps
The issue of timezone consideration in timestamps is widely discussed in the ExifTool-related forums (if you want to dig deeper, take this CPAN thread with Phil Harvey’s contribution as a starting point).
The main reason for all this commotion is that the EXIF standard was introduced without much regard for timezones. Maybe this is due to the fact that it originates from single-timezone Japan (UTC+9) rather than the US (UTC-5 to UTC-10).
A Sample Workflow
But I do not intend to contribute to the highly granular discussion. I want to show you the way I set up my workflow which modifies the most important values in a reliable way.
- My workflow starts with copying my camera’s CR2 files (Canon’s RAW format) to my harddisk. My camera is set to UTC which consequently is the timezone of the EXIF header of my CR2 images.
- Then I run the Automator script described below to add the GPS timezone tags – which are always UTC by definition – and to adjust EXIF, IPTC and XMP timestamps to the images’ local timezone.
- A third steps may or may not include geotagging (e.g. via HoudahGeo; see my upcoming review).
- Finally, the now correctly tagged CR2 files are imported into Adobe Lightroom, where they are automatically converted to DNG, renamed, and populated with other metadata. Please note that Lightroom shuffles the timestamps on import by replacing IPTC values with their XMP counterparts (IPTC tags get deleted!).
Even if this is not your workflow, you might want to make use of the Automator action I wrote. It again is just a number of ExifTool statements – no magic there. However, I spent most of the last week working out which ones would lead to the most reliable result.
ExifTool and the Automator – Reprise

This Automator action uses ExifTool statements to tidy the images' timestamps. Please copy the shell script action from the description below.
In order to use this Automator action, follow the setup instructions of my “ExifTool and the Automator” post, enter the following into the Shell Script box and adjust it for your timezone:
for f in "$@"
do
exiftool -overwrite_original '-GPSTimeStamp<EXIF:CreateDate'
'-GPSDateStamp<EXIF:CreateDate' -EXIF:CreateDate+=1
-EXIF:DateTimeOriginal+=1 "$f"
exiftool -overwrite_original -n
'-IPTC:DateCreated<${EXIF:DateTimeOriginal}+01:00'
'-IPTC:TimeCreated<${EXIF:DateTimeOriginal}+01:00'
'-XMP:DateTimeOriginal<${EXIF:DateTimeOriginal}+01:00'
'-XMP:DateTimeDigitized<${EXIF:DateTimeOriginal}+01:00' "$f"
done
Please do not forget to remove all line breaks from within the “exiftool” statements (i.e. between “do” and “done” should be only two lines, each starting with “exiftool”).
What does it do?
- In the first line, it creates the GPS date and time tags, and takes their values from the camera’s “CreateDate” EXIF timestamp. Then, both EXIF timestamp are set to UTC+1 by adding one hour – this is the local timezone of my images. Change both values “+=1″ to the timezone of your images, e.g. “-=4″ for UTC-4 or “+=9″ for UTC+9.
- The second line injects the timezoned timestamps into the IPTC and XMP tags; set all four “+01:00″ values to whatever your timezone is. (Please note that Finder has its own way of storing and displaying timestamps, and it rarely shows the true creation date of an image. The only workaround I found is to set the FileModifyDate tag to creation date as a last step after file conversion.)
Be careful to test this Automator action on sample files as it overwrites your original images! It is important that your camera’s clock is set to UTC otherwise you will have to adapt the values differently. Of course, the script will not change the image itself in any way (lossless modification).
The script runs the ExifTool command twice on each image, so it may take some time depending on the number of images. There is a thread in the CPAN forum that discusses a more sophisticated solution.
I recommend adding a Growl notification at the end to inform you when the script has finished.
Reliable Results
Save this automator action and run it on your images before you touch them with any other application. It works on all image types supported by ExifTool, i.e. almost all images out there. As a result, your EXIF, IPTC and XMP timestamps are always local time, while the GPS timestamps are on UTC. This is useful as a reference, even if your images are not geotagged.
When importing the resulting files into a geotagging application, remember to indicate GMT+1 (or whatever you chose) as your camera’s timezone. When the images are finally imported into Adobe Lightroom, they will make sense, too.

In Lightroom's EXIF panel, the "original" and "digitized" tags both indicate local timezone. In my setup, "Date Time" (modify date) remains at UTC as a reference only, as Lightroom does not display the GPS timestamp (not a good workaround, I admit).

The second line of our ExifTool statement set Lightroom's IPTC timestamp to the full time-zoned value.
How To Verify Timestamps
This, again, is done easily with the help of an ExifTool statement. Please note that other applications – like Photoshop, Lightroom, or Mac Preview – may display timestamps incorrectly or at least under a confusing tag name. Prior to Snow Leopard, Preview changed the values displayed for the two main EXIF timestamps depending on your Mac’s system time (ouch!).
If you use the following statement in your Automator action, a text file containing all relevant timestamps will be created next to the images. If your image name is “portrait_001.jpg” a text file with the name “portrait_001_timestamps.txt” is created in the same directory.
for f in "$@"
do
exiftool -g1 -a -FileModifyDate -EXIF:TimeZoneOffset
-EXIF:CreateDate -EXIF:DateTimeOriginal -EXIF:ModifyDate
-EXIF:PreviewDateTime -IPTC:DateCreated -IPTC:TimeCreated
-IPTC:DigitalCreationDate -IPTC:DigitalCreationTime
-XMP:DateTimeDigitized -XMP:DateTimeOriginal -XMP:ModifyDate
-XMP:CreateDate -XMP:DateCreated -XMP:DateTime
-XMP:ModificationDate -XMP:MetadataDate -XMP:MetadataModDate
-GPS:GPSDateStamp -GPS:GPSTimeStamp -Composite:GPSDateTime
-w %d%f_timestamps.txt "$f"
done
(Remember to remove the line breaks.)
Additional Hints
If you are an Automator geek, you may include a dialog box to ask for the destination timezone (and if you are a nice geek you may even tell me how to do this). Otherwise you would have to create copies of this Automator workflow for each timezone you visit.
Finally, a practical hint: When travelling, I tend to take a picture of a clock that shows local time, as soon as I enter a new timezone. This visual reference makes validating timestamps easier for visual people. Like photographers.
Dictionary Links
- DST – Daylight Saving Time
- DNG – Digital Negative: non-proprietary RAW format
- EXIF – Exchangeable Image File Format: metadata specification
- Geotagging: adding coordinates to images and other media types
- GPS – Global Positioning System
- IPTC – International Press Telecommunications Council’s information interchange model: metadata specification
- RAW – generic term for “raw” i.e. unprocessed image file formats (NEF, CRW, CR2 etc.), usually created by high quality digital cameras
- UTC – Coordinated Universal Time: time standard, can be used as synonym for Greenwich Mean Time (GMT) for photographic purposes
- XMP – eXtensible Metadata Platform: unifying metadata specification
Updates
- March 16th, 2009: added “How To Verify Timestamps” section
- March 18th, 2009: modified the ExifTool statements (replaced -overwrite_original_in_place with -overwrite_original to increase performance a little)
- March 19th, 2009: Major update: simplified workflow. Modified ExifTool statement (only two lines, now); corrected a syntax error (on a Mac, the arguments should be in single rather than double quotes). Added explanation of ModifyDate tag. Added hint to more sophisticated solution.
- March 30th, 2009: added “Which Timezone?” section, corrected broken ExifTool statement (sorry!)
- May 16th, 2009: completely overhauled ExifTool section based on recent timestamp handling evaluation; minor text changes in other sections
- December 22nd, 2009: added note on Lightroom timestamp modification and on Finder timestamp display; serious update of both ExifTool scripts


Klaus,
Just found this interesting post. I’m familiar with writing ExifTool scripts.
Still a little unclear on what value I should be updating the script with. You state “Change both values “+=1″ to the timezone of your images”. So as an example, I shoot an image in England with camera set at UTC. I live in Australia, east cost which is UTC/GMT+10, except in Summer it’s UTC+11. Do I set the script value to +=10 if I shot the image in Australian Winter and +=11 if in Australian Summer (even though, in England it would be Winter) ?
Hi Mark,
thanks for your contribution.
The whole time stamp concept has a potential for confusion, even more so if you consider DST. However, the core idea is simple: every picture should include the local time of the location where it was shot, with a reference to UTC. This way, you know the local time: “this picture was taken at 3 p.m., that’s when they start the first water show at the Fountains of Bellagio”. The reference to UTC ensures that you can put your image into a global context, e.g. if you put it on Flickr and want find out what pictures were taken at the same moment around the world. Or if you want to compare images taken before and after DST. Or if you just want to make sure that whatever freaking time zone you were in, you have a standardised reference time (you’ll understand this when you’re doing a trip across the US one day).
So, to answer your question: set the +/- levels to indicate the local time zone of the shot, not to your Australian home zone. And don’t forget to consider DST: in winter, a 12:30 shot taken in London would read “12:30:00+00:00″ (12:30 local time, local time is equal to UTC), while in summer the same shot would be “12:30:00+01:00″ (12:30 local time, local time is one hour ahead of UTC because of daylight saving time).
Hope this helped clear things up.
Klaus
Klaus,
I was getting confused due to your statement “It is important that your camera’s clock is set to UTC”. I read this as always set the clock UTC no matter where in the world I took the photo.
Mark,
you read this right: setting your camera to UTC is my recommendation.
Klaus
Hello,
nice work.
Where can I find some explanation about the ${variable} thing, or is this bash??
fiveyears
Hello fiveyears,
no, this is an Automator variable. The variable “$@” receives the output from the previous action, in the ExifTool examples above this is the filename of the image to be changed.
The
for f in "$@" do ...loop makes sure the command is carried out on all files passed from the input.There’s some information about the variable here.
Hope this helped.
Klaus