As is often the case in these types of questions, the answer is yes... but...
This is relatively easy to do, but the devil is in the details. For example, how consistent are the dates in the filename? If there is a clear, precise way of determining the date components, then it can be done - in this case it needs a little text parsing which is doable, but hardly AppleScript's strong point.
Also, the creation date is typically locked, so I use a shell hack to force a change - note that this will change both the creation and modification dates for the file. If you want to retain the pre-existing creation date you'll need to read that at the beginning, and reset it after the 'do shell script...' command.
Anyway, this should get you started for a single file:
tell application "Finder"
-- choose a file
set theFile to (choose file)
-- get its filename
set f_name to name of theFile
-- extract the date component
set the_date to my getDateFrom(f_name)
-- assuming we get something that looks like a date...
if the_date ≠ "" then
-- use a shell command to change the creation date
do shell script "touch -t " & the_date & space & quoted form of POSIX path of theFile
end if
end tell
on getDateFrom(theFileName)
-- assume the worst
set new_date to ""
-- save the current state
set old_tids to my text item delimiters
-- use a try block to catch errors
try
-- split the string on "- "
set my text item delimiters to "- "
-- get everything after the "- "
set dateString to text item 2 of theFileName
-- now switch to splitting the string on "."
set my text item delimiters to "."
-- extract the date components - may fail if the string doesn't match the expected format
set {y, m, d} to dateString's {text item 1, text item 2, text item 3}
-- restore state
set my text item delimiters to old_tids
-- calculate the date string in the required format
set new_date to (2000 + y) & m & d & "0000"
end try
-- pass back to the caller
return new_date
end getDateFrom
Note that the script has very limited error checking - if it doesn't get what looks like three dotted components from the filename it *should* just silently error out and do nothing. However, there is no checking to make sure that the values represent an actual date. It will also fail if there are more than two '- ' in the filename. As I said before, these are the details that make all the difference between a quick hack and a robust solution.