извлечение части даты из DateTime в C# [дубликат]


этот вопрос уже есть ответ здесь:

  • Как удалить временную часть даты в C# только в объекте DateTime? 33 ответы

строка кода DateTime d = DateTime.Today; результаты 10/12/2011 12:00:00 AM. Как я могу получить только часть даты.Мне нужно игнорировать часть времени, когда я сравниваю две даты.

5 56

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");

вы можете использовать formatstring

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