从C#中的date时间提取date部分

代码行DateTime d = DateTime.Today; 结果于10/12/2011 12:00:00 AM 。 我怎样才能得到date部分。当我比较两个date时,我需要忽略时间部分。

DateTime是用于存储DateTime的DataType。 但它提供了属性来获取Date部分。

您可以从Date属性中获取date部分。

http://msdn.microsoft.com/en-us/library/system.datetime.date.aspx

 DateTime date1 = new DateTime(2008, 6, 1, 7, 47, 0); Console.WriteLine(date1.ToString()); // Get date-only portion of date, without its time. DateTime dateOnly = date1.Date; // Display date using short date string. Console.WriteLine(dateOnly.ToString("d")); // Display date using 24-hour clock. Console.WriteLine(dateOnly.ToString("g")); Console.WriteLine(dateOnly.ToString("MM/dd/yyyy HH:mm")); // The example displays the following output to the console: // 6/1/2008 7:47:00 AM // 6/1/2008 // 6/1/2008 12:00 AM // 06/01/2008 00:00 

没有办法“放弃”时间组件。

DateTime.Today与以下内容相同:

 DateTime d = DateTime.Now.Date; 

如果你只想显示date部分,只需要 – 使用ToString和你需要的格式string。

例如,使用标准格式string “D”(长date格式说明符):

 d.ToString("D"); 

仅比较数据时间的date时,使用Date属性。 所以这应该适合你

 datetime1.Date == datetime2.Date 
  DateTime d = DateTime.Today.Date; Console.WriteLine(d.ToShortDateString()); // outputs just date 

如果要比较date,忽略时间部分,请使用DateTime.YearDateTime.DayOfYear属性。

代码片段

  DateTime d1 = DateTime.Today; DateTime d2 = DateTime.Today.AddDays(3); if (d1.Year < d2.Year) Console.WriteLine("d1 < d2"); else if (d1.DayOfYear < d2.DayOfYear) Console.WriteLine("d1 < d2"); 

你可以使用一个格式string

 DateTime time = DateTime.Now; String format = "MMM ddd d HH:mm yyyy"; Console.WriteLine(time.ToString(format));