I expect few people (none?) will have any interest in the purpose of this app, but I thought I would post it anyway as I wanted the functionality and I found it an interesting exercise in developing a python app for iMatch. Python was needed to access libraries not available in JavaScript.
The app operates on all files currently selected in iMatch, and modifies the Date Subject Created date by adding to it an appropriate timezone offset. The time zone is determined by GPS coordinates associated with the file, or if no coordinates are available, a default time zone is assumed.
The command line options for the app are:
options:
-h, --help show this help message and exit
-deftz DEFTZ Specify default timezone, (e.g. -deftz Europe/Oslo) for use when there are no GPS coords. If omitted, 'Europe/London' is default.
-user USER Specify user name alias if this has been set in iMatch Application settings. Otherwise not needed
-createdate Normally Date Subject Created is populated. By specifying this option, the same contents are also written to Create Date
-v Verbose output
-np Do not pause output for confirmations
Installation
You need 64 bit Python 3.8, 3.9 or 3.10.
I recommend using a virtual environment (venv) for the python code. After setting up the venv, from the command line:
pip install -r requirements.txt
Then a Favourite can be created:
The Command to Execute should be:
"<path_to_python.exe_in_the_venv>"
The Arguments should be
"<path_to_add_timezone.py>" <options>
You can create multiple Favourites with different names/options , e.g. for different default time zones.
Notes
The date calculated by the app ignores any pre-existing timezone offset, and is based on (in order of priority):
Exif DateTimeOriginal
XMP DateTimeOriginal
XMP:Photoshop Date Created (i.e. Date Subject Created)
This app just changes the Date Subject Created field (and optionally Create Date) but as usual writeback propagates the change to other fields.
This app only makes sense in the context of storing, in Date Subject Created, the local date (relative to where the image was taken) with the timezone offset for that location. This only works if "Metadata 2/XMP Import/Apply time-zone" is set to No when the images are imported. Otherwise imported files will have their File.DateTime manipulated in dependence on the location of the computer running iMatch and whether Daylight Savings is in effect at the time of import.
PS The python code is add_timezone.py but I had to zip this in order to upload.