代码行DateTime d = DateTime.Today;
会产生10/12/2011 12:00:00 AM
。我怎样才能得到日期部分。当我比较两个日期时,我需要忽略时间部分。
答案 0 :(得分:110)
DateTime
是一个DataType,用于存储Date
和Time
。但它提供了属性来获取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
答案 1 :(得分:31)
无法“丢弃”时间组件。
DateTime.Today
与:
DateTime d = DateTime.Now.Date;
如果您只想显示日期部分,只需这样做 - 使用ToString
和您需要的格式字符串。
例如,使用standard format string“D”(长日期格式说明符):
d.ToString("D");
答案 2 :(得分:14)
仅比较数据时间的日期时,请使用Date属性。所以这应该适合你
datetime1.Date == datetime2.Date
答案 3 :(得分:11)
DateTime d = DateTime.Today.Date;
Console.WriteLine(d.ToShortDateString()); // outputs just date
如果您想比较日期,忽略时间部分,请使用DateTime.Year
和DateTime.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");
答案 4 :(得分:5)
您可以使用formatstring
DateTime time = DateTime.Now;
String format = "MMM ddd d HH:mm yyyy";
Console.WriteLine(time.ToString(format));