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?

Srinivas
quelle

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");
tardomatisch
quelle
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;
Keith
quelle
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 ...

Gustave Santiago
quelle
3
string shortDate = dateTimePicker1.Value.ToShortDateString();
waqasahmed
quelle
1

Sie meinen, wie man ein Datum ohne die Zeitkomponente erhält? Verwenden Sie DateTimePicker.Value.Date. Sie müssen die Ausgabe jedoch nach Ihren Anforderungen formatieren.

Vivek
quelle
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.

Warum so ernst
quelle
0

@Shoban Es sieht so aus, als ob die Frage mit c # markiert ist. Hier ist also die entsprechende http://msdn.microsoft.com/en-us/library/system.windows.forms.datetimepicker.value.aspx

public MyClass()
{
    // Create a new DateTimePicker
    DateTimePicker dateTimePicker1 = new DateTimePicker();
    Controls.Add(dateTimePicker1);
    MessageBox.Show(dateTimePicker1.Value.ToString());

    dateTimePicker1.Value = DateTime.Now.AddDays(1);
    MessageBox.Show(dateTimePicker1.Value.ToString());
 } 
jon37
quelle
0

Versuche dies

var store = dtpDateTimePicker.Value.Date;

Speicher kann alles Entitätsobjekt usw. sein.

Mohit Arora
quelle
-1
Datum = DateTime.Parse(DateTimePicker1.Value.ToString("dd/MM/yyyy"))
Joop
quelle