2016-05-27 9 views
-2

Gibt es eine Möglichkeit, die folgenden Zeichenketten in Datum zu parsen, ohne es zu trennen wrt - Zeichen?Parse Zeichenkette in Datum mit C#

25-11-2014 
5-6-2013 
3-10-2012 

Ich verwendete den folgenden Code für einen anderen Fall. Aufgrund fehlender führender Nullen funktionierte es jedoch nicht.

DateTime.ParseExact("06-05-2016", "dd-MM-yyyy", System.Globalization.CultureInfo.InvariantCulture); 
+0

DateTime.ParseExact ("06-05-2016", "d-M-jjjj", System.Globalization.CultureInfo.InvariantCulture – DVK

Antwort

2

Siehe Custom Date and Time Format Strings

Ihr Code:

DateTime.ParseExact("06-05-2016", "dd-MM-yyyy", ...); 

sagt ausdrücklich, "suchen Sie nach einem 2-stelligen Tag und Monat". Wenn Sie einstellige Monate/Tage (ohne führende Null) wollen, ändern Sie einfach das Format-String ...

DateTime.ParseExact("06-05-2016", "d-M-yyyy", ...) 

, die Sie erlauben Tage zu benutzen 31.01 statt 31.01 und Monate 1- 12 statt Monate 01-12.

3

Betrachten Sie Ihre Formatierung String

Formatting strings sind sehr streng in Bezug auf das, was sie erwarten, kommen. Wenn Sie angeben, dass Sie eine zweistellige Datum werde empfangen, dann wird es erwarten eine führende Null.

Als Folge davon können Sie Ihre Formatierungszeichenfolge zu einer Veränderung betrachten, die einzelnen Zeichen Daten und Monate akzeptieren würde, die alle Beispiel Eingänge genügen würde, die Sie as seen here zur Verfügung gestellt:

DateTime.ParseExact(input, "d-M-yyyy", System.Globalization.CultureInfo.InvariantCulture); 

Handhabung mehrere Formate

Zusätzlich ist die DateTime.ParseExact() method has an overload that accepts multiple formatting strings, die im wesentlichen erlauben würde, mehrere Formate zu definieren, die Sie das Datum in sein könnten:

DateTime.ParseExact(input, new []{ "d-M-yyyy", "dd-MM-yyyy" }, System.Globalization.CultureInfo.InvariantCulture, DateTimeStyles.None);