Использование TryParseExact, как правило, приятнее, чем ParseExact, поскольку оно не выдает исключение в случае сбоя преобразования. Вместо этого он возвращает true, если он успешен, и false, если это не так:
DateTime dt;
if (DateTime.TryParseExact("20100202", "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
{
Console.WriteLine(dt.ToString());
}