I’m scripting Photos to update the dates on photos in an album, to make them match the order of photos in the album. These are scans of old photos so the modification dates don’t match when the photos were taken anyway.
It almost works but some photos get a date one hour too early. That looks like a time zone problem except that the photos have no location information, so I can’t tell where it would come from.
tell application "Photos"
set currentAlbum to album named "Album name"
-- Start with a date slightly in the past, based on the album size.
set currentAlbumCount to (count of media items in currentAlbum)
set photoDate to (current date) - currentAlbumCount
repeat with currentItem in media items in currentAlbum
set photoDate to photoDate + 1
set date of currentItem to photoDate
end repeat
end tell
After running this, the EXIF for photos has the time/date for some being an hour earlier than others-- e.g. one at 4:16:13 pm, the next one at 3:16:14, then 4:16:15, with no apparent reason why some are off by an hour.
I’m trying to do this because when I export and use the photos in other places (like Google photos) they get sorted by date, and I want to preserve the sort order.
photoDate
at each iteration. – CJK Oct 19 '19 at 14:49log photoDate
the values are exactly what I'd expect-- they go ahead by one second for each new date value, with no one-hour offsets. – Tom Harrington Oct 20 '19 at 22:53"exif time zone"
,"exif incorrect date time"
,"exif local time utc"
, and there are a gazillion reports of where EXIF seems inconsistent in what it uses to source the date/time information for various fields. It seems particularly relevant when photos have been scanned, and therefore not have a camera supply date/time information. Cont'd... – CJK Oct 21 '19 at 15:52Image Events
can do this for some metadata items, so check its AppleScript dictionary.exiftool
is a command-line tool. AppleScriptObjC'sNSBitmapImageRep
class objects have a property calledNSImageEXIFData
that can be used to get and set metadata items (for JPEGs, anyway). – CJK Oct 21 '19 at 15:57