2017-10-19 4 views
1

Wie konvertiert man eine Zeichenfolge wie "10/19/2017 12:00:00 AM" in eine DateTime? Ich habe Convert.ToDateTime() verwendet, aber es gibt einen Fehler als;Zeichenfolge in DateTime konvertieren Asp.Net

Zeichenfolge wurde nicht als gültige DateTime erkannt.

Wie zu beheben?

+0

'DateTime.Parse (" 10/19/2017 12:00:00 AM ")' oder ParseExact – CodingYoshi

+1

Mögliches Duplikat von [Zeichenfolge nach DateTime in C# parsen] (https://stackoverflow.com/questions/5366285/ parse-string-to-datetime-in-c-sharp) – Fabio

Antwort

2

sollten Sie verwenden ParseExact

var result = DateTime.ParseExact("10/19/2017 12:00:00 PM", "MM/dd/yyyy HH:mm:ss tt", CultureInfo.InvariantCulture); 
+0

Danke es funktioniert .. :) :) – user111

+0

Da 'AM' und' PM' Bezeichnungen für [12-Stunden-Uhr] verwendet werden (https: // en. wikipedia.org/wiki/12-hour_clock), ich denke, es wäre besser, 'hh' anstelle von' HH' zu verwenden. –

2

Convert.ToDateTime hat nicht angegeben Formatierung zu analysieren, müssen Sie DateTime.ParseExact oder DateTime.TryParseExact verwenden:

// DateTime.ParseExact 
DateTime date = DateTime.ParseExact("10/19/2017 12:00:00 PM", "MM/dd/yyyy HH:mm:ss tt", CultureInfo.InvariantCulture); 

// DateTime.TryParseExact 
DateTime.TryParseExact("10/19/2017 12:00:00 PM", "MM/dd/yyyy HH:mm:ss tt", CultureInfo.InvariantCulture, DateTimeStyles.None, out date); 
+0

Da 'AM'- und' PM'-Bezeichnungen für [12-Stunden-Uhr] (https://en.wikipedia.org/wiki/12-hour_clock) verwendet werden, denke ich, dass es besser wäre, 'hh' anstelle von zu verwenden 'HH'-Spezifizierer. –

2
String MyString= "10/19/2017 12:00:00 AM"; 
     DateTime MyDateTime = new DateTime(); 
     MyDateTime = DateTime.ParseExact(MyString, "MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture); 

Format wie unten geht

d - Numerischer Tag des Monats ohne führende Null.

dd - Numerischer Tag des Monats mit einer führenden Null.

ddd - Kurzwahl des Wochentags.

dddd - Vollständiger Name des Wochentags.

f, ff, fff, ffff, fffff, ffffff, fffffff - Bruchteil einer Sekunde. Je mehr Fs, desto höher die Präzision.

h - 12 Stunden, keine führende Null.

hh - 12-Stunden-Uhr mit führender Null.

H - 24 Stunden, keine führende Null.

HH - 24-Stunden-Uhr mit führender Null.

m - Minuten ohne führende Null. mm - Minuten mit führender Null.

M - Numerischer Monat ohne führende Null.

MM - Numerischer Monat mit einer führenden Null.

MMM - Name des Monats abgekürzt.

MMMM - Vollständiger Monatsname.

s - Sekunden ohne führende Null. ss - Sekunden mit führender Null.

t - AM/PM aber nur der erste Buchstabe. tt - AM/PM (AM/PM)

y - Jahr ohne Jahrhundert und führende Null.

yy - Jahr ohne Jahrhundert, mit führender Null.

yyyy - Jahr mit Jahrhundert.

zz - Zeitzone aus mit +/- eingestellt.

+0

Sie brauchen nicht 'DateTime MyDateTime = new DateTime();' weil Sie sowieso ein neues Datum erstellen 'DateTime MyDateTime = DateTime.ParseExact (...' wird ausreichen. – Fabio

Verwandte Themen