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

DateTime s = some datetime;

当前回答

碰巧看到这篇文章,因为我正在寻找相同的功能,这可能会做什么人想要的。取原日期,更换时间部分

DateTime dayOpen = DateTime.Parse(processDay.ToShortDateString() + " 05:00 AM");

其他回答

这是一种贫民区的方法,但它很有效:)

DateTime dt = DateTime.Now; //get a DateTime variable for the example
string newSecondsValue = "00";
dt = Convert.ToDateTime(dt.ToString("MM/dd/yyyy hh:mm:" + newSecondsValue));

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

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
        );
}

DateTime出了什么问题。AddSeconds方法,您可以添加或减去秒?

试试这个

var NewDate = Convert.ToDateTime(DateTime.Now.ToString("dd/MMM/yyyy")+" "+"10:15 PM")/*Add your time here*/;
int year = 2012;
int month = 12;
int day = 24;
int hour = 0;
int min = 0;
int second = 23;
DateTime dt = new DateTime(year, month, day, hour, min, second);