我如何才能改变我的DateTime变量“s”的时间?
DateTime s = some datetime;
我如何才能改变我的DateTime变量“s”的时间?
DateTime s = some datetime;
当前回答
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);
其他回答
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值:
扩展方法
扩展方法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);
//The fastest way to copy time
DateTime justDate = new DateTime(2011, 1, 1); // 1/1/2011 12:00:00AM the date you will be adding time to, time ticks = 0
DateTime timeSource = new DateTime(1999, 2, 4, 10, 15, 30); // 2/4/1999 10:15:30AM - time tick = x
justDate = new DateTime(justDate.Date.Ticks + timeSource.TimeOfDay.Ticks);
Console.WriteLine(justDate); // 1/1/2011 10:15:30AM
Console.Read();
使用日期。添加并添加带有您想添加的新时间的New TimeSpan
DateTime dt = DateTime.Now
dt.Date.Add(new TimeSpan(12,15,00))
这难道不能解决你的问题吗?
Dateime dt = DateTime.Now;
dt = dt.AddSeconds(10);