我有以下EffectiveDay
我希望将日期时间更改为午夜。
public DateTime EffectiveDate { get; set; }
在屏幕截图中,它显示 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);
}
答案 0 :(得分:4)
在ForEach
之后执行ToList
分配不会有帮助,因为您正在设置s
,这是在每次迭代后丢弃的参数。
使用普通的foreach
循环进行分配:
foreach (var w in ClassRoom.WorkOrders) {
w.EffectiveDate = w.EffectiveDate.Date;
// w.EffectiveDate = GetDateZeroTime(w.EffectiveDate); would also work
}
答案 1 :(得分:2)
这应该通过将每个Work_rders的EffectiveDate
属性分配给不知道任何时间的新DateTime
对象,从而有效地消除所有WorkOrders的时间:
foreach (var workOrder in ClassRoom.WorkOrders)
workOrder.EffectiveDate = new DateTime(workOrder.EffectiveDate.Year, workOrder.EffectiveDate.Month, workOrder.EffectiveDate.Day, 0, 0, 0);
在循环中设置workOrder.EffectiveDate = workOrder.EffectiveDate.Date
也应该可以正常工作。