63 votes

extraire la partie date de DateTime en C#

La ligne de code DateTime d = DateTime.Today; résulte en 10/12/2011 12:00:00 AM . J'ai besoin d'ignorer la partie temps lorsque je compare deux dates.

115voto

Sreekumar Points 2044

DateTime est un DataType qui est utilisé pour stocker à la fois Date et Time . Mais il fournit des propriétés pour obtenir le Date Partie.

Vous pouvez obtenir la partie Date à partir de Date Propriété.

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

32voto

Oded Points 271275

Il n'y a pas de moyen d'"écarter" la composante temporelle.

DateTime.Today est la même chose que :

DateTime d = DateTime.Now.Date;

Si vous voulez seulement afficher uniquement la partie date, il suffit de le faire - utiliser la fonction ToString avec la chaîne de format dont vous avez besoin.

Par exemple, en utilisant le chaîne de format standard "D" (spécificateur de format de date longue) :

d.ToString("D");

15voto

Øyvind Bråthen Points 25211

Pour comparer uniquement la date des données, utilisez la propriété Date. Cela devrait donc fonctionner correctement pour vous

datetime1.Date == datetime2.Date

12voto

Niko G. Points 1505
DateTime d = DateTime.Today.Date;
Console.WriteLine(d.ToShortDateString()); // outputs just date

si vous voulez comparer des dates, sans tenir compte de l'heure, utilisez la fonction DateTime.Year et DateTime.DayOfYear propriétés.

extrait de code

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

5voto

Nico Vermeir Points 105

Vous pouvez utiliser une chaîne de format

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X