我如何才能改变我的DateTime变量“s”的时间?

DateTime s = some datetime;

当前回答

当你构造DateTime对象时,使用一个允许你指定时间的构造函数:

var myDateTime = new DateTime(2000, 01, 01, 13, 37, 42);  // 2000-01-01 13:37:42

如果您已经有一个DateTime对象,并希望更改时间,您可以使用简单的方法添加分钟,小时或秒到您的DateTime:

var myDateTime = new DateTime(2000, 01, 01);              // 2000-01-01 00:00:00
myDateTime = myDateTime.AddHours(13);                     // 2000-01-01 13:00:00
myDateTime = myDateTime.AddMinutes(37);                   // 2000-01-01 13:37:00
myDateTime = myDateTime.AddSecounds(42);                  // 2000-01-01 13:37:42

注意,我们必须“保存”每个方法调用myDateTime变量的结果。这是因为DateTime是不可变的,它的方法只是创建添加了额外小时/分钟/秒的新实例。

如果你需要同时添加小时和分钟(和/或秒)以及相同的时间,你可以通过在原始的DateTime中添加一个TimeSpan来简化代码:

var myDateTime = new DateTime(2000, 01, 01);              // 2000-01-01 00:00:00
myDateTime += new TimeSpan(13, 37, 42);                   // 2000-01-01 13:37:42

如果你想设置绝对小时/分钟/秒,而不是添加到现有的值,你可以使用前面提到的DateTime构造函数,并重用之前的年/月/日的值:

myDateTime = new DateTime(myDateTime.Year, myDateTime.Month, myDateTime.Day,
                          20, 33, 19)                     // 2000-01-01 20:33:19

其他回答

设定一天的结束:

date = new DateTime(date.Year, date.Month, date.Day, 23, 59, 59);

DateTime出了什么问题。AddSeconds方法,您可以添加或减去秒?

试试这个

var NewDate = Convert.ToDateTime(DateTime.Now.ToString("dd/MMM/yyyy")+" "+"10:15 PM")/*Add your time here*/;

最简单的解决方案:

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");

这是一种贫民区的方法,但它很有效:)

DateTime dt = DateTime.Now; //get a DateTime variable for the example
string newSecondsValue = "00";
dt = Convert.ToDateTime(dt.ToString("MM/dd/yyyy hh:mm:" + newSecondsValue));