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

在這種情況下,tempTable將有一個表(名爲CustomerInvoice),其中有5列。第三列被命名爲DueDate。我打印到ListView 如下:如何從日期時間類型的變量中獲取日期?

  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值看起來像UI:

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

我希望它看起來像這樣無時間:

七月04,2010
2011年8月20日

我更喜歡解決這個問題在應用程序而不是數據庫級別瑕疵。

注意:數據庫中的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 DD,YYYY」 字符串來自MSDN here(你也可以使用從標準的日期格式here

如果你想對日期做任何實際的計算,你可以使用lDate.Date

+0

已解決。謝謝... – user311509 2010-07-04 14:40:12

0

您可以使用DateTime的ToString方法來定義格式。

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

查看DateTime.ToString(String)查看各種格式。

+1

您需要將行[「DueDate」]的結果轉換爲DateTime實例,然後才能使用ToString()的重載... – BFree 2010-07-04 13:04:33

0

格式,因爲它進入,所以您的格式ammend到該線下方

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

而是調用默認DueDate.ToString()的,通過格式字符串「的ToString」,像這樣:

dateOnly.ToString(「d」)

「d」指定僅打印日期。

+0

或者,要獲得您的確切格式要求,請使用以下格式字符串: 「 MMMM dd,yyyy「 – Sam 2010-07-04 13:03:31

相關問題