我如何才能改变我的DateTime变量“s”的时间?
DateTime s = some datetime;
我如何才能改变我的DateTime变量“s”的时间?
DateTime s = some datetime;
当前回答
DateTime ts = DateTime.Now;
ts = new DateTime ( ts.Year, ts.Month, ts.Day, 0, 0, 0 ) ;
Console.WriteLine ( "Today = " + ts.ToString("M/dd/yy HH:mm:ss") ) ;
执行: 今天= 9/04/15 00:00:00
其他回答
碰巧看到这篇文章,因为我正在寻找相同的功能,这可能会做什么人想要的。取原日期,更换时间部分
DateTime dayOpen = DateTime.Parse(processDay.ToShortDateString() + " 05:00 AM");
这难道不能解决你的问题吗?
Dateime dt = DateTime.Now;
dt = dt.AddSeconds(10);
DateTime是不可变类型,因此不能更改它。
但是,您可以基于之前的实例创建一个新的DateTime实例。在您的示例中,似乎需要Date属性,然后可以添加一个表示一天中的时间的TimeSpan。
就像这样:
var newDt = s.Date + TimeSpan.FromHours(2);
Using an extencion to DateTime:
public enum eTimeFragment
{
hours,
minutes,
seconds,
milliseconds
}
public static DateTime ClearTimeFrom(this DateTime dateToClear, eTimeFragment etf)
{
DateTime dtRet = dateToClear;
switch (etf)
{
case eTimeFragment.hours:
dtRet = dateToClear.Date;
break;
case eTimeFragment.minutes:
dtRet = dateToClear.AddMinutes(dateToClear.Minute * -1);
dtRet = dtRet.ClearTimeFrom(eTimeFragment.seconds);
break;
case eTimeFragment.seconds:
dtRet = dateToClear.AddSeconds(dateToClear.Second * -1);
dtRet = dtRet.ClearTimeFrom(eTimeFragment.milliseconds);
break;
case eTimeFragment.milliseconds:
dtRet = dateToClear.AddMilliseconds(dateToClear.Millisecond * -1);
break;
}
return dtRet;
}
像这样使用:
游戏机。WriteLine (DateTime。Now ClearTimeFrom (eTimeFragment时间)。
这个必须返回: 2016-06-06 00:00:00.000
DateTime出了什么问题。AddSeconds方法,您可以添加或减去秒?