这一行
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???*/
答案 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中的字符串,我测试了它将起作用的代码。