我如何才能改变我的DateTime变量“s”的时间?
DateTime s = some datetime;
我如何才能改变我的DateTime变量“s”的时间?
DateTime s = some datetime;
当前回答
DateTime s;
//s = datevalue
s = s.AddMilliseconds(10);
s = s.AddMinutes(10);
s = s.AddSeconds(10);
s = s.AddHours(10);
您可以在参数中添加+ve/-ve值。
s.Add(new TimeSpan(1, 1, 1));
其他回答
好了,我要深入介绍我的建议,一个扩展方法:
public static DateTime ChangeTime(this DateTime dateTime, int hours, int minutes, int seconds, int milliseconds)
{
return new DateTime(
dateTime.Year,
dateTime.Month,
dateTime.Day,
hours,
minutes,
seconds,
milliseconds,
dateTime.Kind);
}
然后调用:
DateTime myDate = DateTime.Now.ChangeTime(10,10,10,0);
重要的是要注意,这个扩展返回一个新的日期对象,所以你不能这样做:
DateTime myDate = DateTime.Now;
myDate.ChangeTime(10,10,10,0);
但是你可以这样做:
DateTime myDate = DateTime.Now;
myDate = myDate.ChangeTime(10,10,10,0);
我刚刚遇到这篇文章,因为我有一个类似的问题,我想在MVC中为一个实体框架对象设置时间,从视图(datepicker)中获取日期,所以时间组件是00:00:00,但我需要它是当前时间。根据这篇文章中的回答,我想出了:
myEntity.FromDate += DateTime.Now.TimeOfDay;
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);
DateTime是不可变类型,因此不能更改它。
但是,您可以基于之前的实例创建一个新的DateTime实例。在您的示例中,似乎需要Date属性,然后可以添加一个表示一天中的时间的TimeSpan。
就像这样:
var newDt = s.Date + TimeSpan.FromHours(2);
如果你有一个像2014/02/05 18:19:51这样的DateTime,并且只想要2014/02/05,你可以这样做:
_yourDateTime = new DateTime(_yourDateTime.Year, _yourDateTime.Month, _yourDateTime.Day)