我如何才能改变我的DateTime变量“s”的时间?
DateTime s = some datetime;
我如何才能改变我的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对象