将字符串日期转换为日期

时间:2014-02-23 03:20:43

标签: c# date datetime casting

我正在使用ASP.NET从数据库加载数据以显示购买商品的日期,但是它旁边还显示上午12:00:00的时间戳。

如何打印该值以便仅显示日期?

private void UpdateInventory(int index)
{
    DataView inventoryTable = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
    DataRowView row = (DataRowView)inventoryTable[index];

    currentInventory.fac_ID = row["fac_ID"].ToString();
    currentInventory.inv_Quantity = row["inv_Quantity"].ToString();
    currentInventory.inv_Purchase_Date = row["inv_Purchase_Date"].ToString();

    lblFacilityID.Text = currentInventory.fac_ID;
    lblQuantity.Text = currentInventory.inv_Quantity;
    lblPurchaseDate.Text = currentInventory.inv_Purchase_Date;
}

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
    UpdateInventory(DropDownList1.SelectedIndex);
}

public string fac_ID { get; set; }
public string inv_Quantity { get; set; }
public string inv_Purchase_Date { get; set; }

3 个答案:

答案 0 :(得分:4)

如果你不需要任何特别的东西,但只是想省略时间,你可以使用它:

lblPurchaseDate.Text
    = Convert.ToDateTime(row["inv_Purchase_Date"]).ToShortDateString();

这将显示如下内容:

2/22/2014

答案 1 :(得分:1)

您可以使用ToShortDateString方法:

currentInventory.inv_Purchase_Date  = (row["inv_Quantity"] as DateTime).ToShortDateString();

或者使用传递字符串参数specify a format

currentInventory.inv_Purchase_Date = (row["inv_Quantity"] as DateTime).ToString("d MMMM YYYY");

答案 2 :(得分:0)

您可以使用DateTime.ToString(string) - 例如:

currentInventory.inv_Purchase_Date =
    Convert.ToDateTime(row["inv_Purchase_Date"]).ToString("d");

对于string参数,您可以使用"d",这将产生与DateTime.ToShortDateString() as MSDN explains相同的结果;但您也可以灵活地使用其他standardcustom短日期格式字符串。

请注意,如果您的代码无法承担文化,则应考虑利用IFormatProvider的转化选项/重载 - 例如:

var ci = new CultureInfo("en-US"); // or "ja-JP" etcetera

// ...

currentInventory.inv_Purchase_Date =
    DateTime.Parse(row["inv_Purchase_Date"].ToString(), ci).ToString("d", ci);