Я создаю приложение с кодом C#.
Как получить только значение даты из элемента управления DateTimePicker
?
Как получить только значение даты из элемента управления Windows Forms DateTimePicker?
Ответы:
Я предполагаю, что вы имеете в виду средство выбора даты и времени в приложении winforms.
в вашем коде вы можете сделать следующее:
string theDate = dateTimePicker1.Value.ToShortDateString();
или, если вы хотите указать формат даты:
string theDate = dateTimePicker1.Value.ToString("yyyy-MM-dd");
У меня была эта проблема при вставке данных даты в базу данных, вы можете просто использовать элементы структуры отдельно: в моем случае это полезно, поскольку предложение sql должно иметь правильные значения, и вам просто нужно добавить косую черту или тире, чтобы завершить формат , никаких преобразований не требуется.
DateTimePicker dtp = new DateTimePicker();
String sql = "insert into table values(" + dtp.Value.Date.Year + "/" +
dtp.Value.Date.Month + "/" + dtp.Value.Date.Day + ");";
Таким образом, вы получаете только участников даты без времени...
После того, как на этот вопрос уже был дан хороший ответ, в WinForms мы также можем установить Пользовательский формат в DateTimePicker Format, как сказал Вивек, это позволяет нам отображать дату/время в указанной строке формата в DateTimePicker, то это будет так же просто, как мы получаем текст из TextBox.
// Set the Format type and the CustomFormat string.
dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "yyyy/MM/dd";
Теперь мы можем легко получить дату только путем получения текста из DateTimePicker:
MessageBox.Show("Selected Date: " + dateTimePicker1.Text, "DateTimePicker", MessageBoxButtons.OK, MessageBoxIcon.Information);
ПРИМЕЧАНИЕ. Если вы планируете вставлять данные только о дате в тип столбца 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);
}
приведенный выше код заканчивается следующим исключением:
Будьте в курсе. Ваше здоровье.
yyyy/dd/MM
, а не yyyy/dd/mm
. 03.05.2021 Вы имеете в виду, как получить дату без компонента времени? Используйте DateTimePicker.Value.Date. Но вам нужно отформатируйте вывод в соответствии с вашими потребностями.
@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());
}
Попробуй это
var store = dtpDateTimePicker.Value.Date;
хранилище может быть любым объектом сущности и т. д.