Wie erhalte ich nur den Datumswert von einem Windows Forms DateTimePicker-Steuerelement?


73

Ich erstelle eine Anwendung mit C # -Code.
Wie erhalte ich nur den Datumswert von einem DateTimePickerSteuerelement?

Antworten:


127

Ich gehe davon aus, dass Sie eine Datums- / Uhrzeitauswahl in einer Winforms-Anwendung meinen.

In Ihrem Code können Sie Folgendes tun:

string theDate = dateTimePicker1.Value.ToShortDateString();

oder, wenn Sie das Format des Datums angeben möchten:

string theDate = dateTimePicker1.Value.ToString("yyyy-MM-dd");

3
Also habe ich JJJJ-MM-TT anstelle von JJJJ-MM-TT verwendet und hatte Probleme, warum ich jedes Mal einen zufälligen Monat bekomme, wenn ich versuche, ein Datum zu bekommen: D
schar

47
DateTime dt = this.dateTimePicker1.Value.Date;

1
ja, aber es wählt 12:00 Uhr anstelle der aktuellen Zeit und erledigt somit den Job.
Igor

9

Ich hatte dieses Problem beim Einfügen von Datumsdaten in eine Datenbank. Sie können die Strukturelemente einfach separat verwenden: In meinem Fall ist dies nützlich, da der SQL-Satz die richtigen Werte haben muss und Sie nur den Schrägstrich oder Bindestrich hinzufügen müssen, um das Format zu vervollständigen , keine Konvertierungen erforderlich.

DateTimePicker dtp = new DateTimePicker();
String sql = "insert into table values(" + dtp.Value.Date.Year + "/" + 
dtp.Value.Date.Month + "/" + dtp.Value.Date.Day + ");";

Auf diese Weise erhalten Sie nur die Datumsmitglieder ohne Zeit ...




1

Nachdem diese Frage bereits eine gute Antwort erhalten hat, können wir in WinForms auch ein benutzerdefiniertes Format für die DateTimePicker- Format- Eigenschaft festlegen, wie Vivek sagte. Auf diese Weise können wir das Datum / die Uhrzeit in der angegebenen Formatzeichenfolge im DateTimePicker anzeigen . Es wird genauso einfach sein wie wir, Text von einer TextBox zu erhalten .

// Set the Format type and the CustomFormat string.
dateTimePicker1.Format = DateTimePickerFormat.Custom;    
dateTimePicker1.CustomFormat = "yyyy/MM/dd";

dateTimePicker1

Wir können das Datum jetzt nur noch einfach abrufen, indem wir den Text aus dem DateTimePicker abrufen :

MessageBox.Show("Selected Date: " + dateTimePicker1.Text, "DateTimePicker", MessageBoxButtons.OK, MessageBoxIcon.Information);

Geben Sie hier die Bildbeschreibung ein

HINWEIS: Wenn Sie Datum nur Daten an einen einzufügen planen Datum Spaltentyp in SQL finden Sie in dieser Dokumentation in Bezug auf die unterstützten String Literal Formate für Datum . Sie können kein Datum in die Formatzeichenfolge ydm einfügen, da dies nicht unterstützt wird:

dateTimePicker1.CustomFormat = "yyyy/dd/MM";  
var qr = "INSERT INTO tbl VALUES (@dtp)";
using (var insertCommand = new SqlCommand..
{
   try
   {
     insertCommand.Parameters.AddWithValue("@dtp", dateTimePicker1.Text);
     con.Open();
     insertCommand.ExecuteScalar();
   }
   catch (Exception ex)
   {
      MessageBox.Show("Exception message: " + ex.Message, "DateTimePicker", MessageBoxButtons.OK, MessageBoxIcon.Error);
   }

Der obige Code endet mit der folgenden Ausnahme: Geben Sie hier die Bildbeschreibung ein

Sei vorsichtig. Prost.



0

Versuche dies

var store = dtpDateTimePicker.Value.Date;

Speicher kann alles Entitätsobjekt usw. sein.


-1
Datum = DateTime.Parse(DateTimePicker1.Value.ToString("dd/MM/yyyy"))
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.