我有以下EffectiveDay要将日期时间更改为午夜。

public DateTime EffectiveDate { get; set; }


c# - 将日期时间更改为午夜-LMLPHP

在屏幕截图中,它显示了02/28/2018 5:00:00 AM。

我想将其更改为02/28/2018 12:00:00 AM(午夜)

我尝试了以下方法,但没有用

ClassRoom.WorkOrders.Select(w => w.EffectiveDate).ToList().ForEach(s => s = s.Date);


我也尝试了以下方法,但没有用。

ClassRoom.WorkOrders.Select(w => w.EffectiveDate).ToList().ForEach(s => s = GetDateZeroTime(s.Date));

public static DateTime GetDateZeroTime(DateTime date)
{
  return new DateTime(date.Year, date.Month, date.Day, 0, 0, 0);
}

最佳答案

ForEach之后对ToList进行赋值将无济于事,因为您正在设置s,该参数在每次迭代后都会被丢弃。

使用普通的foreach循环进行分配:

foreach (var w in ClassRoom.WorkOrders) {
    w.EffectiveDate = w.EffectiveDate.Date;
    // w.EffectiveDate = GetDateZeroTime(w.EffectiveDate); would also work
}

08-06 18:32