web-dev-qa-db-fra.com

Comment obtenir uniquement la valeur de date à partir d'un contrôle DateTimePicker Windows Forms?

Je construis une application avec du code C #.
Comment obtenir uniquement la valeur de date d'un contrôle DateTimePicker?

69
srinivas

Je suppose que vous voulez dire un sélecteur de date/heure dans une application Winforms.

dans votre code, vous pouvez effectuer les opérations suivantes:

string theDate = dateTimePicker1.Value.ToShortDateString();

ou, si vous souhaitez spécifier le format de la date:

string theDate = dateTimePicker1.Value.ToString("yyyy-MM-dd");
119
tardomatic
DateTime dt = this.dateTimePicker1.Value.Date;
44
Keith

J'ai eu ce problème lors de l'insertion de données de date dans une base de données, vous pouvez simplement utiliser les membres de structure séparément: dans mon cas, c'est utile car la phrase SQL doit avoir les bonnes valeurs et il vous suffit d'ajouter la barre oblique ou un tiret pour compléter le format. , pas de conversions nécessaires.

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

De cette façon, vous obtenez juste la date des membres sans temps ...

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

Vous voulez dire comment obtenir une date sans la composante heure? Utilisez DateTimePicker.Value.Date Mais vous devez formater la sortie selon vos besoins.

1
Vivek

@Shoban On dirait que la question est taguée c # alors voici le snippé approprié 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());
 } 
0
jon37

Essaye ça

var store = dtpDateTimePicker.Value.Date;

magasin peut être tout objet entité, etc.

0
Mohit Arora

Suite à cette bonne réponse à cette question, dans WinForms, nous pouvons également définir un Format personnalisé sur la propriété DateTimePickerFormat Vivek a dit, cela nous permet d'afficher la date/heure dans la chaîne de format spécifiée dans le DateTimePicker, il sera donc simple, tout comme nous le ferions pour obtenir du texte d'un TextBox .

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

dateTimePicker1

Nous sommes maintenant en mesure d’obtenir Date facilement en récupérant le texte du DateTimePicker:

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

enter image description here

REMARQUE: Si vous envisagez d’insérer uniquement les données de date dans un type de colonne date date en SQL, reportez-vous à la documentation associée à la pris en charge les formats littéraux de chaîne pour date . Vous ne pouvez pas insérer une date dans la chaîne de format ydm car elle n'est pas prise en charge:

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);
   }

le code ci-dessus se termine par l'exception suivante: enter image description here

Savoir. À votre santé.

0
WhySoSerious