如何仅从类型DateTime的变量中获取日期?

时间:2010-07-04 12:55:45

标签: c# .net asp.net vb.net

DataTable tempTable = new DataTable;
.
.
.
tempTable = getCustomerTable();

在这种情况下,tempTable将有一个表(名为CustomerInvoice) 5列。第3列名为DueDate。我打印到列表视图 如下:

            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();

这就是UI上的DueDate值:

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

我希望它没有时间看起来像这样:

2010年7月4日
2011年8月20日

我更喜欢在应用程序而不是数据库级别解决此问题。

注意:数据库中的DueDate属于datetime类型。

我在C#中与Sql-Server交互编码。

我希望我的问题很清楚。

4 个答案:

答案 0 :(得分: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

的日期进行任何实际计算

答案 1 :(得分:0)

您可以使用DateTime的ToString方法来定义格式。

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

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

答案 2 :(得分:0)

在输入时对其进行格式化,因此对于您的格式,请修改以下行

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

答案 3 :(得分:0)

不是调用默认的DueDate.ToString(),而是将格式字符串传递给“ToString”,如下所示:

dateOnly.ToString( “d”)

“d”指定仅打印日期。