Schnell und vielleicht schmutzig:
string reformattedDate = DateTime.ParseExact(textBox1.Text, "dd/MM/yyyy", null).ToString("yyyy/MM/dd");
Dabei wird natürlich davon ausgegangen, dass der Inhalt des Textfeldes immer das angenommene Format hat, so dass vorher geprüft werden sollte, ob dies der Fall ist. Es gibt auch eine viel sicherere Methode, die keine zusätzlichen Überprüfungen erfordert:
DateTime result;
if(DateTime.TryParseExact(textBox1.Text, "dd/MM/yyyy", null, System.Globalization.DateTimeStyles.None, out result)
{
// Here you can safely use result
string reformattedDate = result.ToString("yyyy/MM/dd");
} else {
// Screw the user
}
Dies wird versuchen, den Inhalt der Textbox zu analysieren und ihn über die out result
und gibt im Erfolgsfall true zurück. Andernfalls können Sie sicher sein, dass die Eingabe entweder nicht das angenommene Format hatte oder kein gültiges Datum war.
Bitte beachten Sie auch, dass ParseExact
wirft eine ArgumentNullException
oder ein ArgumentException
wenn die Konvertierung fehlschlägt.
Ich habe ein Textfeld, in das der Benutzer ein Datum im Format tt/mm/jjjj eingeben soll, das in der Datenbank als jjjj/mm/tt gespeichert ist.
Die offensichtliche Antwort darauf ist: Verwenden Sie einen DateTimePicker und eine parametrisierte Abfrage, bevor Sie sich mit einer String-Konvertierung herumschlagen. Das spart Ihnen viel Kopfschmerzen auf lange Sicht zu vermeiden.
0 Stimmen
Welchen Datentyp hat Ihr Datum in der Datenbank? Ich hoffe, es ist ein Datum/Zeit-Feld.
1 Stimmen
In Ihrer Datenbank sollte es sich um eine
DATETIME
Datentyp, und als solcher hat er kein Format - es ist nur der Wert.0 Stimmen
Der Datentyp des Datums in der Datenbank ist 'DATE'.