如何在C#中只设置DateTimevariables的时间部分
我有一个DateTimevariables:
DateTime date = DateTime.Now;
我想更改DateTimevariables的时间部分。 但是当我试图访问时间部分(hh:mm:ss)时,这些字段是只读的。
我不能设置这些属性?
使用允许您指定年,月,日,小时,分钟和秒的构造函数:
var dateNow = DateTime.Now; var date = new DateTime(dateNow.Year, dateNow.Month, dateNow.Day, 4, 5, 6);
你不能改变DateTime对象,它是不可变的。 但是,您可以将其设置为新的值,例如:
var newDate = oldDate.Date + new TimeSpan(11, 30, 55);
date = new DateTime(date.year, date.month, date.day, HH, MM, SS);
我不确定你想要做什么,但是你可以用许多方法把date/时间设置成你想要的。
您可以通过使用指定12/25/2010 4:58 PM
DateTime myDate = Convert.ToDateTime("2010-12-25 16:58:00");
或者如果你有一个现有的date时间构造,比如说2010年12月25日(和任何随机时间),你想把它设置为12/25/2010 4:58 PM,你可以这样做:
DateTime myDate = ExistingTime.Date.AddHours(16).AddMinutes(58);
ExistingTime.Date
将在午夜12/25,并且您只需添加小时和分钟即可达到您想要的时间。
这是不可能的,因为DateTime是不可变的。 同样的讨论可以在这里: 如何改变date时间?