извлечение части даты из DateTime в C# [дубликат]
этот вопрос уже есть ответ здесь:
- Как удалить временную часть даты в C# только в объекте DateTime? 33 ответы
строка кода DateTime d = DateTime.Today;
результаты 10/12/2011 12:00:00 AM
. Как я могу получить только часть даты.Мне нужно игнорировать часть времени, когда я сравниваю две даты.
5 ответов:
DateTime
- Это тип данных, который используется для хранения как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
нет никакого способа "отбросить" компонент времени.
DateTime.Today
- это то же, что:DateTime d = DateTime.Now.Date;
если вы хотите display только часть даты, просто сделать это - использовать
ToString
С нужной строкой формата.например, с помощью строка стандартного формата " D " (длинный спецификатор формата даты):
d.ToString("D");
при сравнении только даты datatimes используйте свойство Date. Так что это должно работать хорошо для вас
datetime1.Date == datetime2.Date
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");