我如何才能改变我的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));

其他回答

最简单的解决方案:

DateTime s = //some Datetime that you want to change time for 8:36:44 ;
s = new DateTime(s.Year, s.Month, s.Day, 8, 36, 44);

如果您需要特定的日期和时间格式:

s = new DateTime(s.Year, s.Month, s.Day, 8, 36, 44).ToString("yyyy-MM-dd h:mm:ss");
 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

一个衬套

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

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

如果你有一个像2014/02/05 18:19:51这样的DateTime,并且只想要2014/02/05,你可以这样做:

_yourDateTime = new DateTime(_yourDateTime.Year, _yourDateTime.Month, _yourDateTime.Day)

事实上,时间一旦创建就不能更改。 但是你可以用很多构造函数轻松创建它: https://learn.microsoft.com/en-us/dotnet/api/system.datetime.-ctor?view=netframework-4.7.2

例如,如果你想创建一个DateTime变化的秒,你可以这样做:

DateTime now = DateTime.Now;
DateTime secondschanged = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, yourseconds);