Ich muss einen String-Extrakt aus einer Datei in datetime konvertieren. Das Problem ist, dass meine Zeichenfolge kein eindeutiges Format hat. Zum Beispiel kann meine Zeichenfolge etwas wie: 19-05-2016 1: 24: 09: 560 oder 19-05-2016 21: 24: 09: 56 oder 19-05-2016 10: 24: 09: 560 oder 19- 05-2016 10:24:09 und so weiter. Ich habe denen nicht alle Möglichkeiten noch (diese Saiten sind aus einer Json Antwort von einem API-Aufruf gezogen)C# - String in Datetime mit DateTime.ParseExact konvertieren
Dies ist, wie mein Code sieht aus wie
public static DateTime ConveDateTime(string a)
{
DateTime finished;
try
{
finished = DateTime.ParseExact(a, "dd-MM-yyyy HH:mm:ss:fff", CultureInfo.InvariantCulture,
DateTimeStyles.AssumeUniversal |
DateTimeStyles.AdjustToUniversal);
}
catch (Exception)
{
try
{
finished = DateTime.ParseExact(a, "dd-MM-yyyy HH:mm:ss:ff", CultureInfo.InvariantCulture,
DateTimeStyles.AssumeUniversal |
DateTimeStyles.AdjustToUniversal);
}
catch (Exception)
{
try
{
finished = DateTime.ParseExact(a, "dd-MM-yyyy HH:mm:ss:f", CultureInfo.InvariantCulture,
DateTimeStyles.AssumeUniversal |
DateTimeStyles.AdjustToUniversal);
}
catch (Exception)
{
try
{
finished = DateTime.ParseExact(a, "dd-MM-yyyy HH:mm:ss", CultureInfo.InvariantCulture,
DateTimeStyles.AssumeUniversal |
DateTimeStyles.AdjustToUniversal);
}
catch (Exception)
{
try
{
finished = DateTime.ParseExact(a, "dd-MM-yyyy H:mm:ss:fff", CultureInfo.InvariantCulture,
DateTimeStyles.AssumeUniversal |
DateTimeStyles.AdjustToUniversal);
}
catch (Exception)
{
try
{
finished = DateTime.ParseExact(a, "dd-MM-yyyy H:mm:ss:ff", CultureInfo.InvariantCulture,
DateTimeStyles.AssumeUniversal |
DateTimeStyles.AdjustToUniversal);
}
catch (Exception)
{
finished = DateTime.ParseExact(a, "dd-MM-yyyy H:mm:ss:f", CultureInfo.InvariantCulture,
DateTimeStyles.AssumeUniversal |
DateTimeStyles.AdjustToUniversal);
}
}
}
}
}
}
return finished;
}
Ich möchte wissen, ob es irgendeine bessere Lösung beim Konvertieren einer Zeichenfolge als die Lösung, die ich habe.
Warum verwenden Sie nicht stattdessen TryParseExact()? –
Und wie gehst du mit MM-TT-JJJJ-Format umgehen? –