我如何才能改变我的DateTime变量“s”的时间?

DateTime s = some datetime;

当前回答

这里有一个方法,你可以用它来做,像这样用

DateTime newDataTime = ChangeDateTimePart(oldDateTime, DateTimePart.Seconds, 0);

这是方法,可能有更好的方法,但我只是草草写了一下:

public enum DateTimePart { Years, Months, Days, Hours, Minutes, Seconds };
public DateTime ChangeDateTimePart(DateTime dt, DateTimePart part, int newValue)
{
    return new DateTime(
        part == DateTimePart.Years ? newValue : dt.Year,
        part == DateTimePart.Months ? newValue : dt.Month,
        part == DateTimePart.Days ? newValue : dt.Day,
        part == DateTimePart.Hours ? newValue : dt.Hour,
        part == DateTimePart.Minutes ? newValue : dt.Minute,
        part == DateTimePart.Seconds ? newValue : dt.Second
        );
}

其他回答

这难道不能解决你的问题吗?

Dateime dt = DateTime.Now;
dt = dt.AddSeconds(10);

试试这个

var NewDate = Convert.ToDateTime(DateTime.Now.ToString("dd/MMM/yyyy")+" "+"10:15 PM")/*Add your time here*/;

一个衬套

var date = DateTime.Now.Date.Add(new TimeSpan(4, 30, 0));

将带回今天的日期,时间为4:30:00,取代DateTime。现在对于任何date对象

DateTime是不可变类型,因此不能更改它。

但是,您可以基于之前的实例创建一个新的DateTime实例。在您的示例中,似乎需要Date属性,然后可以添加一个表示一天中的时间的TimeSpan。

就像这样:

var newDt = s.Date + TimeSpan.FromHours(2);

设定一天的结束:

date = new DateTime(date.Year, date.Month, date.Day, 23, 59, 59);