Ibland kan något du gör med en fil göra att dess skapelse- och/eller ändringsdatum blir fel. Det kan hända om du till exempel överför filerna på nätverk med en teknik som inte bevara datum eller exporterar bilder från ett bildhanteringsprogram. Oavsett orsak kan det ställa till problem.

För alla slags filtyper kan fel datum göra att ordningen blir fel om du sorterar i datumordning. Men för bilder är det särskilt problematiskt eftersom många av oss håller ordning på våra bildsamlingar delvis utifrån datum, och om Finder säger något annat än Bilder, Lightroom eller vilket program du nu använder kan det vara irriterande.

Oavsett vilka filer du har och vad problemet är finns det en lösning för att fixa datumen.

Enkelt med terminalen

Som för så många andra saker som rör filhantering kan du använda Terminal för att korrigera felaktiga datum. Mac OS har ett inbyggt verktyg som kan ställa tillbaka klockan på en fil vars skapelsedatum har blivit senare än det borde vara. Du måste själv fylla i rätt datum och det fungerar inte för att ändra skapelsedatum framåt i tiden, men när det fungerar fungerar det bra.

Öppna Terminal och skriv in följande följt av ett mellanslag:

touch -t ÅÅÅÅMMDDttmm

Ersätt ÅÅÅÅMMDDttmm med till exempel 202008021701 för att ändra tid och datum till 2020-08-02 klockan 17:01.

Dra sedan filen du vill ändra datum på till terminalfönstret och släpp så fyller Terminal i sökvägen till filen. Tryck retur så ändras ändringsdatum till det angivna datumet, och om det är tidigare än filens skapelsedatum ändras det också.

Om du vill ändra tiden åt andra hållet eller ändra skapelse- och ändringsdatum var för sig kan du använda verktyget SetFile, men då måste du först installera Xcodes kommandoradsverktyg. Det gör du med kommandot:

xcode-select -install

Med Terminal

Du kommer då få frågan om du vill godkänna installationen av Xcode Command Line Tools. När det är klart kan du ändra skapelsedatum med följande kommando:

SetFile -d 'MM/DD/ÅÅÅÅ tt:mm' [dra filen hit]

Och ändringsdatum med:

SetFile -m 'MM/DD/ÅÅÅÅ tt:mm' [dra filen hit]

Notera att datumet här måste skrivas med amerikanskt format, och glöm inte mellanslag efter andra citattecknet.

Fel datum
Bilder kan lätt få fel skapelsedatum.

Specialfall för bilder

Om du vill ändra bilder så att Finders skapelse- och ändringsdatum är identiska med datumet du faktiskt tog dem går det också. Det senare uppgiften sparas i dessa filers exif-data och ändras inte när du redigerar eller kopierar filerna.

Det här kan du också åtgärda via Terminal, eller med tredjepartsprogrammet Graphic Converter.

Graphic Converter kostar en slant men gör det så klart enklare än via Terminal. Allt du behöver göra är att välja File -> Browse och leta upp filerna du vill fixa. Markera samtliga, ctrl/höger-klicka och välj Exif Metadata -> Set Creation and Modification Date Depending on Exif. Klart.

Med Terminal måste du först installera det mångsidiga verktyget exiftool. Det gör du enklast via homebrew med kommandot brew install exiftool.

Exiftool

När den är klar ändrar du skapelse- och ändringsdatum med följande kommando. Precis som med touch ovan fungerar det tyvärr bara om filens nuvarande skapelsedatum är senare än datumet i exif-datan.

exiftool "-filemodifydate<datetimeoriginal" [fil eller mapp]
Precis som ovan kan du dra en fil från Finder efter det andra citattecknet (och ett mellanslag), men till skillnad från touch och SetFile kan exiftool jobba med flera filer åt gången. Om du ger det en mapp istället för en fil kommer det fixa datumen på alla bilder (och videor) i den mappen som har ett exif-datum.

Överkurs: Bygg ett eget verktyg med Automator

Om det här är något du behöver göra relativt ofta och du inte är sugen på att köpa Graphic Converter kan du använda Automator för att bygga ett eget litet verktygsprogram som byter ut skapelsedatum på bilder till exif-datumet. Då har du dessutom möjlighet att bara ändra skapelsedatum men lämna ändringsdatum intakt.

Först måste du installera Xcodes kommandoradsverktyg (se ovan) för att få tillgång till kommandot SetFile.

Automator-program

Börja med att öppna Automator och skapa ett nytt arbetsflöde eller program. Det senare gör att du slipper starta Automator för att köra det. Spara på en passande plats. Sök sedan efter applescript i sökfältet uppe till vänster och dra Kör AppleScript-skript till det tomma området till höger. Fyll sedan i följande i rutan för kod (ersätt det som redan står där):

use scripting additions
use framework "AppKit"

set input to (choose file of type {"public.image"} with prompt "Välj en eller flera bilder:" default location (path to home folder) with multiple selections allowed)

repeat with aFile in input
 set filePath to (POSIX path of aFile) as string
 set imageRep to (current application's NSBitmapImageRep's imageRepWithContentsOfFile:(POSIX path of aFile))
 set exifData to (imageRep's valueForProperty:(current application's NSImageEXIFData))
 if exifData is missing value then
  display dialog "Hittade ingen EXIF-data (inte en bild?)" buttons "OK" default button 1
 else
  set exifData to exifData as record
  set captureDate to DateTimeOriginal of exifData
  set _year to text 1 thru 4 of captureDate
  set _month to text 6 thru 7 of captureDate
  set _day to text 9 thru 10 of captureDate
  set _hour to text 12 thru 13 of captureDate
  set _minute to text 15 thru 16 of captureDate
  set _date to _month & "/" & _day & "/" & _year
  set _time to _hour & ":" & _minute
  set _dateAndTime to _date & " " & _time
  try
   do shell script "SetFile -d '" & _dateAndTime & "' " & quoted form of filePath
   do shell script "SetFile -m '" & _dateAndTime & "' " & quoted form of filePath
  on error
   display dialog "FEL: kunde inte ändra datum" buttons "OK" default button 1
  end try
 end if

end repeat

Spara igen och testa på en eller flera bilder du vet har fel datum. Genom att se till att skriptet bara kan välja bildfiler ser du till att skriptet inte försöker meka med andra filer.

Ta bort raden med ”do shell script "SetFile -m …” om du bara vill ändra skapelsedatum. Det kan vara praktiskt om du har redigerat en bild men vill att skapelsedatumet på filen ska stämma med fotograferingstillfället enligt exif-datan.