Как получить только значение даты из элемента управления Windows Forms DateTimePicker? - PullRequest
67 голосов
/ 16 июля 2009

Я создаю приложение с кодом C #.
Как получить только значение даты из DateTimePicker элемента управления?

Ответы [ 9 ]

117 голосов
/ 16 июля 2009

Полагаю, вы имеете в виду средство выбора даты и времени в приложении winforms.

в своем коде вы можете сделать следующее:

string theDate = dateTimePicker1.Value.ToShortDateString();

или, если вы хотите указать формат даты:

string theDate = dateTimePicker1.Value.ToString("yyyy-MM-dd");
44 голосов
/ 16 июля 2009
DateTime dt = this.dateTimePicker1.Value.Date;
8 голосов
/ 24 ноября 2012

У меня была эта проблема при вставке данных даты в базу данных, вы можете просто использовать элементы struct отдельно: В моем случае это полезно, поскольку в предложении sql должны быть правильные значения, и вам просто нужно добавить косую черту или тире, чтобы завершить формат, без преобразования.

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

Таким образом, вы получаете только дату участников без времени ...

3 голосов
/ 16 июля 2009
string shortDate = dateTimePicker1.Value.ToShortDateString();
1 голос
/ 16 июля 2009

Вы имеете в виду, как получить дату без компонента времени? Использовать DateTimePicker.Value.Date Но вам нужно отформатировать вывод в соответствии с вашими потребностями.

0 голосов
/ 10 апреля 2015
Datum = DateTime.Parse(DateTimePicker1.Value.ToString("dd/MM/yyyy"))
0 голосов
/ 17 марта 2015

Попробуйте это

var store = dtpDateTimePicker.Value.Date;

Магазин может быть любым объектом и т. Д.

0 голосов
/ 20 января 2014

После того, как на этот вопрос уже был дан хороший ответ, в WinForms мы также можем установить Пользовательский формат в DateTimePicker Формат , как сказал Вивек. это позволяет нам отображать дату / время в указанной строке формата в DateTimePicker , тогда будет просто, как мы получаем текст из TextBox .

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

dateTimePicker1

Теперь мы можем легко получить дату, получив текст из DateTimePicker :

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

enter image description here

ПРИМЕЧАНИЕ. Если вы планируете вставлять данные только по дате в тип столбца date в SQL, см. Эту документацию , касающуюся поддерживаемых строковых литеральных форматов для date . Вы не можете вставить дату в строку формата ydm , поскольку она не поддерживается:

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

приведенный выше код заканчивается следующим исключением: enter image description here

Будь в курсе. Приветствия.

0 голосов
/ 16 июля 2009

@ Shoban Похоже, что вопрос помечен c #, так что вот соответствующий отрывок 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());
 } 
...