I must be missing something.
date1 = new Date(2010, 01, 10, 12, 10, 30, 000);
date2 = new Date(2010, 01, 10, 12, 10, 30, 000);
trace(date1 == date2); // returns false
However,
date1 = new Date(2010, 01, 10, 12, 10, 30, 000);
date2 = new Date(2010, 01, 10, 12, 10, 30, 000);
trace(date1.toString() == date2.toString()); // returns true
So... what's going on? Obviously the two date objects are somehow subtly different, and that difference somehow gets overlooked when they're parsed out as strings, but how are they different?