My investigations of Aperture’s internals continue with a question from John:
There’s no way in Aperture to change the image date value Aperture stores in its database. We know it doesn’t have to be the same as the embedded image metadata value because if you import from iPhoto Aperture stores iPhoto’s user defined date value.
Is there a Scriptable API for changing the value of the Aperture database date value?
Here’s what I have found. In the Aperture database table zrkversion, there are numerous timestamp fields:
ZEXPORTMETADATACHANGEDATEZEXPORTIMAGECHANGEDATEZFULLSIZEPREVIEWCHANGEDATEZDATELASTSAVEDINDATABASEZCREATEDATEZIMAGEDATE
The one we’re looking for is ZIMAGEDATE. The value looks to be in NSDate format. I wrote the following AppleScript to convert the value into a more useable AppleScript date object:
set theDate to call method "dateWithTimeIntervalSinceReferenceDate:"¬
of class "NSDate" with parameter (theTimestamp as real)
There’s no AppleScript API in Aperture’s dictionary to access this data, so you’ll need to go directly into the SQLite3 database of Aperture if you want to edit the image date of selected images. Perhaps I’ll write an application that helps people edit the image date!
Email me if you have any suggestions. In the meantime, I will be poking around the Apple Discussion Forums for more details on what people want.







Leave a comment