2013-05-24 2 views
0

Я пытаюсь создать программу, которая будет хранить дату в базе данных в формате dd/MM/yyyy.I googled и видел те же результаты. Я пробовал кодировать его, но он не работает. Дата ввода находится в шаблоне dd/MM/yy с использованием пользовательского формата datetimepicker. После небольшого манипулирования строкой для удаления нулей нулевой последовательности возвращается строка MM/dd/yyyy.C# date time picker conversion

Вот мой код

System.Windows.Forms.MessageBox.Show(Cdate.Text + "CDATE"); //shows dd/MM/yyyy 
      string[] datecut = new string[4]; 

      datecut = Cdate.Text.Split('/'); 
      DateTime cdate = DateTime.ParseExact(datecut[0].PadLeft(2, '0') + '/' + datecut[1].PadLeft(2, '0') + '/' + datecut[2], "dd/MM/yyyy", null); 
      EC.setCDate(cdate.ToShortDateString()); 
      System.Windows.Forms.MessageBox.Show(cdate.ToShortDateString()); //shows MM/dd/yyyy 

      datecut = Cdate.Text.Split('/'); 
      DateTime date = DateTime.ParseExact(datecut[0].PadLeft(2, '0') + '/' + datecut[1].PadLeft(2, '0') + '/' + datecut[2], "dd/MM/yyyy", null); 
      EC.setDate(date.ToShortDateString()); 
      System.Windows.Forms.MessageBox.Show(date.ToShortDateString()); 
+0

Какая база данных? –

ответ

1

Вы пробовали:

Строка Дата = DateTime.Now.ToString ("дд/мм/гггг");

0

Как правило, вы используете метод DateTime.TryParse для синтаксического анализа строки. (http://msdn.microsoft.com/en-us/library/system.datetime.tryparse.aspx) После того, как у вас есть строка, как объект DateTime, вы можете распечатать его обратно, однако вам, как с помощью DateTime.ToString() (http://msdn.microsoft.com/en-us/library/zdtaw1bw.aspx)

0

Похоже, у вас есть DatePicker и вы пытаетесь работать со строкой представление выбранной даты. Если это так, я бы этого не сделал. Выбор даты имеет свойство, называемое значением, которое представляет собой объект DateTime, представляющий выбранную дату, в которой вы могли бы буквально перейти к вашему методу EC.setDate.

EC.setDate(dateTimePicker.Value.ToString("dd/MM/yyyy")); 
4

магазин дата в базе данных с форматом дд/мм/гггг

Нет, нет, NO. Ваша база данных будет иметь тип данных, специально предназначенный для полей даты. Вы должны использовать этот тип. Этот тип даты не сохраняет значение даты в любом формате, пригодном для чтения человеком. Он сохранит дату в компактном двоичном формате. Инструмент запроса или базы данных показывает только удобный для пользователя формат.

Если вы можете привести пример того, где вы сохраняете дату в базе данных и какую базу данных вы используете, мы можем показать вам, как это сделать без форматирования вашей даты вообще.

+0

Если нет ОЧЕНЬ конкретной причины, почему он это делает, я согласен, мой ответ был за вопрос, но user1548960 Джоэл прав, нет причин изменять формат вашей даты, если его переход на SQL просто пройдет по DateTime к вашему параметру команды и позволить ему летать. Если вы хотите сохранить этот формат для некоторых требований, сделайте его столбцом varchar и пропустите долго, что я сделал с моим ответом. – Bearcat9425