J'ai une variable DateTime:
DateTime date = DateTime.Now;
Je veux changer la partie heure d'une variable DateTime. Mais lorsque j'ai essayé d'accéder à la partie heure (hh: mm: ss), ces champs sont en lecture seule.
Je ne peux pas définir ces propriétés?
Utilisez le constructeur qui vous permet de spécifier l'année, le mois, le jour, les heures, les minutes et les secondes:
var dateNow = DateTime.Now;
var date = new DateTime(dateNow.Year, dateNow.Month, dateNow.Day, 4, 5, 6);
vous ne pouvez pas changer l'objet DateTime, il est immuable. Cependant, vous pouvez lui attribuer une nouvelle valeur, par exemple:
var newDate = oldDate.Date + new TimeSpan(11, 30, 55);
date = new DateTime(date.year, date.month, date.day, HH, MM, SS);
Je ne sais pas exactement ce que vous essayez de faire, mais vous pouvez régler la date et l'heure exactement de ce que vous voulez de plusieurs manières ...
Vous pouvez spécifier 12/25/2010 4:58 PM en utilisant
DateTime myDate = Convert.ToDateTime("2010-12-25 16:58:00");
OU si vous avez une construction datetime existante, dites 12/25/2010 (et toute heure aléatoire) et que vous souhaitez la définir sur 12/25/2010 16:58, vous pouvez le faire comme ceci:
DateTime myDate = ExistingTime.Date.AddHours(16).AddMinutes(58);
Le ExistingTime.Date
il sera 12h25 à minuit et il vous suffira d’ajouter des heures et des minutes pour obtenir l’heure souhaitée.
Ce n'est pas possible car DateTime est immuable. La même discussion est disponible ici: Comment changer l'heure dans datetime?