Строка кода DateTime d = DateTime.Today;
приводит к 10/12/2011 12:00:00 AM
. Как я могу получить только часть даты. Мне нужно игнорировать часть времени, когда я сравниваю две даты.
Извлеките часть даты из DateTime в С#
Ответ 1
DateTime
- это тип данных, который используется для хранения как Date
, так и Time
. Но он предоставляет свойства для получения Date
Part.
Вы можете получить часть Date из Date
Property.
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
Ответ 2
Невозможно "отменить" компонент времени.
DateTime.Today
совпадает с:
DateTime d = DateTime.Now.Date;
Если вы хотите отобразить только часть даты, просто сделайте это - используйте ToString
со строкой формата, в которой вы нуждаетесь.
Например, используя строку стандартного формата "D" (спецификатор формата long date):
d.ToString("D");
Ответ 3
При сравнении только даты данных используйте свойство Date. Так что это должно сработать для вас.
datetime1.Date == datetime2.Date
Ответ 4
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");
Ответ 5
вы можете использовать formatstring
DateTime time = DateTime.Now;
String format = "MMM ddd d HH:mm yyyy";
Console.WriteLine(time.ToString(format));