Looks like a lot of us have had the same problem. I experienced this when moving files from my old iMac (iMovie '08) to my new iMac (iMovie 10.0.6). Unlike some users, the latest version of iMovie was NOT able to fix this problem for me. I decided to use it as an opportunity to learn Bash scripting so that I could programmatically "fix" the Last Modified meta data for all my movie clips in order to trick iMovie into using the correct timestamps. This worked in my case because the movie clips were all imported (from a Sony Handycam) with file names like "clip-2010-12-31 10;34;25.mov". That is, the timestamp was embedded directly into the file name. So I used a Bash script to parse the file names and set the Last Modified date accordingly. I've pasted the script at the bottom, in case any one else wants to try it. Once I figured it out, this was the process:
- Open Terminal (shell)
- Changed directories to where my movies were saved ($ cd $HOME/Movies/iMovie\ Events.localized)
- Pasted in the script below (all the "clip...mov" files' Last Modified dates were updated)
- Opened iMovie 10
- Created a new event called "Dummy"
- Copied all clips from one event (call it "MyEvent1") into Dummy (This forced iMovie to re-read the timestamps for those clips)
- Performed an "Undo" to move the clips from Dummy back into MyEvent1 (the corrected timestamps were kept though)
- Repeated Step 7 for all my events
I only had about 20 events (but >200 clips) so it really wasn't so bad once I figured out the script. It's a bit of a hack job, but it worked in my case. Obviously, this would need to be customized for your particular files, if you happen to get filenames with the date in it. Hopefully someone else finds it useful.
And please keep adding some "I have this question too" marks to this thread. The iMovie developers need to see this is a request coming from a lot of users to make it a high enough priority compared to other requests they receive. If it gets enough attention from users, then hopefully they can commit some resources to fixing the problem.
Good luck everyone!
---------------
#!/bin/bash
# Parse the file name, assuming it is of the form
# “clip-CCYY-MM-DD hh;mm;SS.mov”, then change the “last modified”
# and “file created” dates to match the info from the file name.
# Store old IFS so we can change it, then set it back at the end
oldIFS=$IFS
IFS=
# Enable ‘globstar’ so we can do a recursive
# directory search with ‘**’
shopt -s globstar
# Find all “clip*.mov” files in subdirectories
for file in **/clip*.mov
do
# Make sure a file is returned
if [[ ! -f "$file" ]]
then
continue
fi
# Print file name for reference
echo "$file"
# Brute force parsing since spacing is fixed
CC=$(echo ${file:(-23):2})
YY=$(echo ${file:(-21):2})
MM=$(echo ${file:(-18):2})
DD=$(echo ${file:(-15):2})
hh=$(echo ${file:(-12):2})
mm=$(echo ${file:(-9):2})
SS=$(echo ${file:(-6):2})
# Catenate into a variable ‘timestamp’
timestamp=$CC$YY$MM$DD$hh$mm.$SS
# Call ‘touch’ function to change Date Modified and Date Created
touch -t $timestamp $file
done
# Return IFS to its prior value
IFS=$oldIFS
-----------------