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

DateTime s = some datetime;

当前回答

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

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

其他回答

设定一天的结束:

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

您可以通过许多不同的方式将初始值分配给新的DateTime值:

扩展方法

扩展方法DateTime

    public static DateTime ChangeTime(this DateTime dateTime, int hours, int minutes, int seconds = default, int milliseconds = default)
    {
        return new DateTime(dateTime.Year, dateTime.Month, dateTime.Day, hours, minutes, seconds, milliseconds, dateTime.Kind);
    }

然后使用ChangeTime:

    DateTime datetime = DateTime.Now; //Your DateTime
    datetime = datetime.ChangeTime(12, 20, 10);

使用Add方法 DateTime = DateTime. now;/ /你的DateTime datetime = datetime. date . addhours (12).AddMinutes(20).AddSeconds(10); 使用时间跨度 DateTime = DateTime. now;/ /你的DateTime datetime = datetime. date添加(新的TimeSpan(12,20,10)); 使用初始值 DateTime = DateTime. now; datetime = new datetime (datetime。datetime。月,datetime。天,12,20,10);

由于DateTime是不可变的,所以当需要更改日期组件时,必须创建一个新实例。不幸的是,没有内置功能来设置DateTime实例的各个组件。

使用以下扩展方法

public static DateTime SetPart(this DateTime dateTime, int? year, int? month, int? day, int? hour, int? minute, int? second)
{
    return new DateTime(
        year ?? dateTime.Year,
        month ?? dateTime.Month,
        day ?? dateTime.Day,
        hour ?? dateTime.Hour,
        minute ?? dateTime.Minute,
        second ?? dateTime.Second
    );
}

public static DateTime SetYear(this DateTime dateTime, int year)
{
    return dateTime.SetPart(year, null, null, null, null, null);
}

public static DateTime SetMonth(this DateTime dateTime, int month)
{
    return dateTime.SetPart(null, month, null, null, null, null);
}

public static DateTime SetDay(this DateTime dateTime, int day)
{
    return dateTime.SetPart(null, null, day, null, null, null);
}

public static DateTime SetHour(this DateTime dateTime, int hour)
{
    return dateTime.SetPart(null, null, null, hour, null, null);
}

public static DateTime SetMinute(this DateTime dateTime, int minute)
{
    return dateTime.SetPart(null, null, null, null, minute, null);
}

public static DateTime SetSecond(this DateTime dateTime, int second)
{
    return dateTime.SetPart(null, null, null, null, null, second);
}

您可以设置单独的DateTime组件,如

var now = DateTime.Now;

now.SetSecond(0);

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

一个衬套

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

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