Как установить только временную часть переменной DateTime в С#

У меня есть переменная DateTime:

DateTime date = DateTime.Now;

Я хочу изменить временную часть переменной DateTime. Но когда я попытался получить доступ к временной части (hh: mm: ss), эти поля будут прочитаны только.

Не могу установить эти свойства?

Ответ 1

Используйте конструктор, который позволяет указать год, месяц, день, часы, минуты и секунды:

var dateNow = DateTime.Now;
var date = new DateTime(dateNow.Year, dateNow.Month, dateNow.Day, 4, 5, 6);

Ответ 2

вы не можете изменить объект DateTime, он неизменен. Однако вы можете установить его на новое значение, например:

var newDate = oldDate.Date + new TimeSpan(11, 30, 55);

Ответ 3

date = new DateTime(date.year, date.month, date.day, HH, MM, SS);

Ответ 4

Я не уверен, что вы пытаетесь сделать, но  вы можете установить дату/время точно так, как хотите, несколькими способами...

Вы можете указать 12/25/2010 4:58 PM, используя

DateTime myDate = Convert.ToDateTime("2010-12-25 16:58:00");

ИЛИ, если у вас есть существующая конструкция datetime, скажем 12/25/2010 (и любое случайное время), и вы хотите установить ее до 12/25/2010 16:58, вы можете сделать это следующим образом:

DateTime myDate = ExistingTime.Date.AddHours(16).AddMinutes(58);

ExistingTime.Date будет 12/25 в полночь, и вы просто добавите часы и минуты, чтобы добраться до нужды.