extrae la parte de fecha de DateTime en C #

La línea de código DateTime d = DateTime.Today; resultados en 10/12/2011 12:00:00 AM . ¿Cómo puedo obtener solo la parte de la fecha? Necesito ignorar la parte del tiempo cuando comparo dos fechas.

DateTime es un DataType que se usa para almacenar tanto la Date como la Time . Pero proporciona propiedades para obtener la parte de Date .

Puede obtener la parte Date desde la Propiedad de 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 

No hay forma de “descartar” el componente de tiempo.

DateTime.Today es lo mismo que:

 DateTime d = DateTime.Now.Date; 

Si solo desea mostrar solo la parte de la fecha, simplemente haga eso: use ToString con la cadena de formato que necesita.

Por ejemplo, usando la cadena de formato estándar “D” (especificador de formato de fecha larga):

 d.ToString("D"); 

Al comparar solo la fecha de los datos, use la propiedad Fecha. Así que esto debería funcionar bien para ti

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

si desea comparar fechas, ignorando la parte de tiempo, haga un uso de las propiedades DateTime.Year y DateTime.DayOfYear .

fragmento de código

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

puedes usar una cadena de formato

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