20121004 (yyyyMMdd) in eine gültige Datums- und Uhrzeitangabe konvertieren?

Ich habe eine Zeichenfolge im folgenden FormatyyyyMMdd und ich versuche es so aussehen zu lassen:

yyyy-MM-dd

Wenn ich versuche:

string date = "20121004";

Convert.ToDateTime(date).ToString("yyyy-MM-dd");

Ich erhalte den Fehler:

FormatException: String was not recognized as a valid DateTime.

Würde das folgende funktionieren oder stoße ich auf ein Problem:

private string GetValidDate(string date,string format)
{
    DateTime result;
    if(DateTime.TryParseExact(date, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out result))
    {
        return date;
    }
    else if(DateTime.TryParseExact(date, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out result))
    { 
        return DateTime.ParseExact(date, "yyyyMMdd",
                CultureInfo.InvariantCulture).ToString("yyyy-MM-dd");
     }
     else
     {
        return "Invalid Date Format";
     }
}

Antworten auf die Frage(4)

Ihre Antwort auf die Frage