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