2010-03-26 2 views
6

У меня есть DateTimePicker на моей форме, и я установил значение свойства пользовательского формата в «дд/мм/гггг» муравья, когда я запускаю этот код:Как установить DateTimePicker значение только в дату (.NET)

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

Я получаю следующее значение: "3/26/2010 1:26 PM".

Как я могу удалить часть времени из значения.

Я знаю, что мы можем использовать этот метод

dateTimePicker1.Value.ToShortDateString(); 

, но я хочу, чтобы установить свойство значения в этом формате «дд/мм/гггг» поэтому выход будет, как это «26/3/2010 ", потому что я хочу сохранить значение в моей базе данных (SQL)

Как я могу это сделать?

+0

Если вы хотите сохранить дату-часть вашего 'System.DateTime' в своей БД, почему вы берете отформатированную строку в БД? ... скорее используйте 'dateTimePicker1.Value.Date', а затем сохраните это в своей колонке (которая может быть dateTime или date - независимо от того, что позволяет ваша БД) –

ответ

12

Используйте dateTimePicker1.Value.Date, чтобы получить часть даты этого значения DateTime.

Обратите внимание, что если вы имеете в виду синтаксический анализ строк, то при использовании dateTimePicker1.Value.Date.ToString результатом будет строка «26/03/2010 00:00:00», а при использовании чего-то вроде MyString = CStr(dateTimePicker1.Value.Date) результат MyString будет «26/03/2010" .

1

просто MessageBox.Show(dateTimePicker1.Value.ToString("dd/MM/yyyy"));

+0

Я хочу это сделать: datetimepicker.value = 26/03/2010 Есть ли способ, ? – salhzmzm

+0

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

+3

Используйте ParseExact, как показано ниже. Замените строку даты в первом параметре любой строковой переменной, имеющейся в вашей программе. DateTime dtResult = DateTime.ParseExact ("26/03/2010", "d/M/yyyy", CultureInfo.InvariantCulture); См. Здесь для получения дополнительной информации http://msdn.microsoft.com/en-us/library/system.datetime.parseexact.aspx –

4

Я предполагаю, что вы инициализирован DateTimePicker с текущей датой и временем:

dateTimePicker1.Value = DateTime.Now; 

Вместо инициализировать его с текущей датой:

dateTimePicker1.Value = DateTime.Today; 

Что происходит в следует:

  • Если пользователь выбирает дату, то свойство DateTimePicker.Value всегда будет возвращать дату без компонента времени суток, а DateTime.Kind - Unspecified.

  • Если пользователь не выбрал дату, то свойство DateTimePicker.Value вернет значение, используемое для инициализации объекта DateTimePicker.Value. Если вы инициализируете его DateTime.Now, у него будет компонент времени суток, а DateTime.Kind будет установлен в Local.

0

Если у вас есть строка, как тип данных в базе данных:

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

Если тип данных DateTime:

dateTimePicker1.Value.Date; 

И возвратит дату в дд/мм/гггг формате без времени.

+0

, возможно, вы могли бы объяснить, как это отвечает на вопрос OPs? Также - что произойдет, если у пользователя есть другая культура на своей машине? –

+3

Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, почему и/или как он отвечает на вопрос, значительно улучшит его долгосрочную ценность. Пожалуйста, отредактируйте свой ответ, чтобы добавить какое-то объяснение. – CodeMouse92

+0

@ JasonMc92 Спасибо, я новичок в stackoverflow. Я добавил некоторые объяснения. – Trushant04

Смежные вопросы