2010-07-04 4 views
0
DataTable tempTable = new DataTable; 
. 
. 
. 
tempTable = getCustomerTable(); 

В этом случае tempTable будет иметь таблицу (именуемую CustomerInvoice), которая имеет 5 столбцов. Третий столбец называется DueDate. Я печатаю к ListView следующим образом:Как я могу получить дату только из переменной типа DateTime?

  for (int i = 0; i < tempTable.Rows.Count; i++) 
      { 
       DataRow row = tempTable.Rows[i]; 

       ListViewItem lvi = new ListViewItem(row["CuInvoiceID"].ToString()); 
       lvi.SubItems.Add(row["CustomerQuoteID"].ToString()); 
       lvi.SubItems.Add(row["DueDate"].ToString()); 

       lstvRecordsCInv.Items.Add(lvi); 
      } 

      tempTable.Clear(); 

Это как DueDate значение выглядит как на пользовательском интерфейсе:

alt text http://img8.imageshack.us/img8/1116/52705575.jpg

Я хочу, чтобы это выглядело как это без времени:

июля 04, 2010
20 августа 2011 г.

Я предпочитаю решить эту проблему на уровне приложения, а не на уровне db.

ПРИМЕЧАНИЕ: DueDate в базе данных имеет тип datetime.

Я кодирую в C#, взаимодействуя с Sql-Server.

Надеюсь, мой вопрос достаточно ясен.

ответ

1

Вместо:

lvi.SubItems.Add(row["DueDate"].ToString()); 

Вы можете сделать что-то вроде:

DateTime lDate = row["DueDate"] as DateTime; 
lvi.SubItems.Add(lDate.ToString("MMMM dd, yyyy"); 

Значения в «MMMM дд, гггг» строки приходят из MSDN here (вы также можете использовать стандартные форматы дат из here))

Если вы хотите сделать какие-либо фактические расчеты только на дату, вы можете использовать lDate.Date

+0

Решено. Благодаря... – user311509

0

Вы можете использовать метод ToString для DateTime для определения формата.

row["DueDate"].ToString("dd MMM yyyy"); // 04 Jul 2010 

Ищите DateTime.ToString(String), чтобы увидеть различные форматы.

+1

Вам нужно передать результат строки ["DueDate"] экземпляру DateTime, прежде чем вы сможете использовать эту перегрузку ToString() ... – BFree

0

его формат, как он входит, поэтому для формата ammend в строке ниже

lvi.SubItems.Add(row["DueDate"].ToString("MMMM dd, yyyy")); 
0

Вместо вызова по умолчанию DueDate.ToString(), передать строку формата в «ToString», как это:

dateOnly.ToString ("d")

"d" указывает только на печать даты.

+0

Или, чтобы получить точные требования к форматированию, используйте эту строку формата: " MMMM dd, yyyy " – Sam

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