I finally found an easy solution to this problem. As I'm reading the excel file, I do a tryparse to determine if the value is an integer. If it is, I convert the serial date to a DateTime. Here is my date cleaning job.
<pre lang="cs">public static DateTime? CleanDateField(string DateField)
{
DateTime? CleanDate = new DateTime();
int intDate;
bool DateIsInt = int.TryParse(DateField, out intDate);
if (DateIsInt)
{
CleanDate = DateTime.FromOADate(intDate);
}
else if (DateField.Length != 0 && DateField != "1/1/0001 12:00:00 AM" &&
DateField != "1/1/1753 12:00:00 AM")
{
CleanDate = (Convert.ToDateTime(DateField));
}
else
{
CleanDate = null;
}
return CleanDate;
}