将字符串转换为日期没有时间

时间:2009-12-21 00:19:11

标签: c# asp.net asp.net-mvc

这一行

System.DateTime.Parse("09/12/2009"); 

将日期(字符串)转换为9/12/2009 12:00:00 AM。我怎样才能在9/12/2009的表格中找到日期。

在解释之后我做了:

DateTime dt = System.DateTime.Parse(Request.Form["datepicker"]);
dt.ToString("dd/mm/yyyy");
/* and this code have time, why???*/

3 个答案:

答案 0 :(得分:26)

您的问题不在于解析,而在于输出。查看ToString如何为DateTime工作,或使用此示例:

using System;

class Program
{
    static void Main(string[] args)
    {
        DateTime dt = DateTime.Parse("09/12/2009");
        Console.WriteLine(dt.ToString("dd/MM/yyyy"));
    }
}

或者在您的语言环境中获取内容:

Console.WriteLine(dt.ToShortDateString());

更新:您对问题的更新意味着您还没有完全理解我的答案,所以我会再添加一些解释。 .NET中没有日期 - 只有DateTime。如果要在.NET中表示日期,可以通过存储当天开始的午夜时间来完成。即使您不需要,也必须始终存储时间。你无法删除它。重要的一点是,当您向用户显示此DateTime时,只显示日期部分。

答案 1 :(得分:4)

解析为DateTime对象的任何内容都将包含日期+时间。如果没有时间,则假设值为0000hr。

要获取仅限日期的表示形式,您可以将其格式化为字符串。

E.g。 theDate.ToString("dd/MM/yyyy")

请参阅MSDN Date and Time Format Strings

答案 2 :(得分:0)

如果要将gridview datetime列转换为仅日期列,请使用以下代码:

raddgvDaybook.Rows.ToList().ForEach(x =>
{
    DateTime dt = DateTime.Parse(x.Cells["Vocdate"].Value.ToString());
    string str = string.Format("{0:MM/dd/yyyy}", dt);
    x.Cells["Vocdate"].Value = str;
});

如果你将日期时间绑定为dgv中的字符串,我测试了它将起作用的代码。

相关问题