2010-07-04 92 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

相关问题