Keines Ihrer Formate stellt den Tag an erster Stelle, so: "dd/MM/yyyy"
.
Beachten Sie auch die Großbuchstaben 'M', da Kleinbuchstaben 'm' für 'Minuten' steht. Sie haben ein ähnliches Problem mit Ihren Stunden; Da Ihre Samples alle 24 Stunden verwenden, benötigen Sie ein großes "H".
Ihr Format-String-Array sollte wie folgt aussehen:
string[] formats = {"dd/MM/yyyy", "yyyy-MM-dd HH:mm:ss", "dd/MM/yyyy HH:mm:ss", "yyyyMMdd HH:mm:ss"};
Diese Formate genau Ihren gelieferten Probe Strings entsprechen.
Zusätzlich möchten Sie in diesem Fall wahrscheinlich die invariante Kultur anstelle von en-US
verwenden. Andernfalls ist das Zeichen '/' in Ihren Formatzeichenfolgen wirklich ein kulturspezifisches Datumstrennzeichen, das ein Benutzer möglicherweise auf seinem lokalen System überschreitet.
Schließlich, da Sie offensichtlich Schwierigkeiten haben, die Strings zusammenzufassen, möchten Sie vielleicht TryParseExact()
verwenden, die genau wie parse genau funktioniert, aber einen out
Parameter verwendet, anstatt den Wert zurückzugeben, so dass es einen booleschen Wert zurückgeben kann um Erfolg oder Misserfolg anzuzeigen, anstatt eine Ausnahme auszulösen.
Siehe die vollständige Format-String-Referenz hier:
http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx
Falai Brazuca! :) Können Sie uns ein wenig mehr Informationen zu Ihrem Szenario geben? Erhalten Sie Daten in allen drei Formaten mit demselben Kontext? –
Fala aí .... Ich muss ein XML-Dokument lesen. In diesem Dokument gibt es Zeichenfolgen, die Datumsangaben darstellen. Diese Daten können jedoch in mehreren Formaten vorliegen. Ich muss diese Formate identifizieren und die Zeichenfolgen in DateTime konvertieren. –