The ToDate function has an annoying feature whereby it will translate a DATE STRING that is NOT in the format provided AND it will get it WRONG!
e.g. it will translate ’09-09-09′ using $!MyDate := ToDate($inputString, ‘dd-mm-yyyy’) to 9-September-0009 instead of the expect ‘null’ which would normally happen for non-matching date strings.
The year 0009 (or the other possible years 0000-0099) can be detected using something like:
If ( ToInteger(!ToChar($!MyDate, ‘YYYY’))