2016-06-15 8 views
0

Wie kann ich eine Textbox Zeichenfolge zu Datetime in asp.net C# konvertieren?Wie konvertiert man eine Textbox String zu einem Datetime in asp.net C#?

Ich versuchte dies:

DateTime d2 = Convert.ToDateTime(tbx_Created.Text); 
string createdformatted = d2.ToString("MM/dd/yyyy hh:mm:ss tt"); 
DateTime CreatdDate = DateTime.ParseExact(tbx_Created.Text, "MM/dd/yyyy hh:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture); 

aber es zeigt diesen Fehler:

String was not recognized as a valid DateTime

I 15-6-2016 zu Textbox gegeben haben.

Bitte beraten.

+1

zum Nachdenken: 'Ich habe 15-6 gegeben -2016 zu Textfeld ',' DateTime.ParseExact (..., "MM/TT/JJJJ hh: mm: ss tt") "etwas bemerken? –

+0

Du gibst ein Datum weiter, aber versuchst auch eine Zeit zu parsen, entferne alles außer 'MM/dd/yyyy' .. Ich schätze, das ist es, worauf @Manfred hingewiesen hat :) – Spluf

Antwort

1

Für "15-6-2016" Eingabe sollte Datetime-Muster "d-M-yyyy" sein

DateTime CreatdDate = DateTime.ParseExact(tbx_Created.Text, 
    "d-M-yyyy", 
    System.Globalization.CultureInfo.InvariantCulture); 

Sie versuchen mehrere Muster in einem Rutsch anwenden können, wie folgt aus:

DateTime CreatdDate = DateTime.ParseExact(tbx_Created.Text, 
    new String[] { 
     "MM/dd/yyyy hh:mm:ss tt", // your initial pattern, recommended way 
     "d-M-yyyy"},    // actual input, tolerated way 
    System.Globalization.CultureInfo.InvariantCulture, 
    DateTimeStyles.AssumeLocal); 
1

Sie können Benutzereingaben wie folgt analysieren:

DateTime enteredDate = DateTime.Parse(enteredString); 

Wenn Sie ein bestimmtes Format für die Zeichenfolge haben, sollten Sie die andere Methode verwenden:

DateTime.ParseExact("24/01/2013", "dd/MM/yyyy"); 

source

0

Sie verwenden MM für:

DateTime loadedDate = DateTime.ParseExact(loadedString, "d", null); 

Ihre Formate Eingabe der Exact Match sollte Monat, während Wert des Monats 6 nicht 06 ist, so müssen Sie M für Monat verwenden.

DateTime dt = DateTime.Now; 
DateTime.TryParseExact(tbx_Created.Text, "dd-M-yyyy", System.Globalization.CultureInfo.InvariantCulture, DateTimeStyles.None, out dt); 
0
DateTime CreatdDate = DateTime.ParseExact(tbx_Created.Text, "d-M-yyyy", null); 
0

Parse mit genau diesem Format ParseExact verwenden. Aber bevor das Parsen zu überprüfen, ob es sein wird, ist das Parsen gültig mit TryParseExact

if (!DateTime.TryParseExact("15-6-2016", "dd-M-yyyy",null)) 
{ 
    myDate = DateTime.ParseExact("15-6-2016", "dd-M-yyyy", null); 
    Console.WriteLine(myDate); 
} 
0
DateTime d2= DateTime.Parse(tbx_Created.Text); 

Einem besseren Weg, dies wäre:

DateTime d2; 
if (!DateTime.TryParse(tbx_Created.Text, out myDate)) 
{ 
    // handle parse failure 
} 
0
DateTime datetime = Convert.ToDateTime(txbx_created.Text); 
String CurrentTime = String.Format("{0:MM/dd/yyyy HH:mm}", datetime); 
Verwandte Themen