2010-03-26 10 views
6

ho DateTimePicker sulla mia forma e ho impostato un valore alla proprietà formato personalizzato per "dd/MM/yyyy" formica quando faccio funzionare questo codice:Come impostare DateTimePicker valore unica data in (NET)

MessageBox.Show(dateTimePicker1.Value.ToString());

ottengo questo valore: "3/26/2010 1:26".

Come posso rimuovere la parte di tempo dal valore.

So che possiamo usare questo metodo

dateTimePicker1.Value.ToShortDateString(); 

ma voglio impostare la proprietà valore a questo formato di "dd/MM/yyyy" modo l'uscita sarà così "26/3/2010 ", perché voglio memorizzare il valore nel mio DB (SQL)

Come posso farlo?

+0

Se si desidera archiviare la parte della data di "System.DateTime' nel DB, perché si prende una stringa formattata nel DB? ... piuttosto usare 'dateTimePicker1.Value.Date' e quindi memorizzarlo nella colonna (che potrebbe essere dataTime o data - qualunque sia il DB consentito) –

risposta

12

Utilizzare dateTimePicker1.Value.Date per ottenere la parte Data di questo valore DateTime.

Tuttavia, se si intende analizzare le stringhe, l'utilizzo di dateTimePicker1.Value.Date.ToString verrà eseguito con la stringa "26/03/2010 00:00:00", mentre l'utilizzo di qualcosa come MyString = CStr(dateTimePicker1.Value.Date) determinerà che MyString è "26/03/2010" .

1

solo MessageBox.Show(dateTimePicker1.Value.ToString("dd/MM/yyyy"));

+0

Io voglio fare questo: datetimepicker.value = 26/03/2010 C'è un modo per farlo? ? – salhzmzm

+0

datetimepicker.Value = new DateTime (2010, 3, 26); oppure datetimepicker.Value = Convert.ToDateTime ("26/03/2010"); – PierrOz

+3

Utilizza ParseExact come di seguito. Sostituisci la stringa della data nel primo parametro con qualsiasi variabile stringa che hai nel tuo programma. DateTime dtResult = DateTime.ParseExact ("26/03/2010", "d/M/yyyy", CultureInfo.InvariantCulture); Vedere qui per maggiori informazioni http://msdn.microsoft.com/en-us/library/system.datetime.parseexact.aspx –

4

suppongo si inizializza la DateTimePicker con la data e l'ora correnti:

dateTimePicker1.Value = DateTime.Now; 

Invece, inizializzarla con la data corrente:

dateTimePicker1.Value = DateTime.Today; 

ciò che accade è come segue:

  • Se l'utente seleziona una data, la proprietà DateTimePicker.Value restituirà sempre una data senza componente dell'ora del giorno e DateTime.Kind impostato su Unspecified.

  • Se l'utente non seleziona una data, la proprietà DateTimePicker.Value restituirà il valore utilizzato per inizializzare la proprietà DateTimePicker.Value. Se lo si inizializza con DateTime.Now, avrà un componente ora del giorno e DateTime.Kind verrà impostato su Local.

0

Se si dispone di stringa come tipo di dati nel database:

dateTimePicker1.Value.Date.ToString("d"); 

Se tipo di dati è DateTime:

dateTimePicker1.Value.Date; 

Sia data gg/mm/aaaa senza tempo tornerà.

+0

forse potresti spiegare come questo risponde alla domanda degli OPs? Inoltre - cosa succede se un utente ha una cultura diversa sulla sua macchina? –

+3

Sebbene questo codice possa rispondere alla domanda, fornire un contesto aggiuntivo sul perché e/o su come risponde alla domanda migliorerebbe significativamente il suo valore a lungo termine. Per favore [modifica] la tua risposta per aggiungere qualche spiegazione. – CodeMouse92

+0

@ JasonMc92 Grazie, sono nuovo nello stackoverflow. Ho aggiunto qualche spiegazione. – Trushant04

Problemi correlati