如何在 C # 中只设置 DateTime 变量的时间部分

我有一个 DateTime 变量:

DateTime date = DateTime.Now;

我想更改 DateTime 变量的 time 部分。但是当我尝试访问 time part (hh: mm: ss)时,这些字段是只读的。

我不能设置这些属性吗?

170984 次浏览

使用允许指定年、月、日、小时、分钟和秒的构造函数:

var dateNow = DateTime.Now;
var date = new DateTime(dateNow.Year, dateNow.Month, dateNow.Day, 4, 5, 6);
date = new DateTime(date.year, date.month, date.day, HH, MM, SS);

这是不可能的,因为 DateTime 是不可变的

你不能改变 DateTime 对象,它是不可变的。但是,你可以设置它为一个新的值,例如:

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

我不知道你到底想干什么 您可以通过多种方式设置日期/时间,以确定您想要的日期/时间。

您可以使用以下命令指定12/25/20104:58 PM

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

或者,如果你有一个现有的日期时间结构,比如说2010年12月25日(以及任何随机时间) ,你想把它设置为2010年12月25日下午4:58,你可以这样做:

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

ExistingTime.Date将在午夜12点25分,你只需要增加小时和分钟就可以达到你想要的时间。