首页 > 解决方案 > 如何在 Linq c# 中从日期时间中删除日期

问题描述

我只想从 linq 查询中的日期时间变量中获取时间。例如,如果我有一个包含值的日期时间数组

["02/12/1970 14:52:06","14/06/2015 12:32:44"]

然后如何从中提取最短时间,以便我得到类似的输出

"12:32:44" 

好像我取这两个最小值一样,它将给出输出 "14:52:44",而不是"12:32:44" 因为第一个值的日期部分小于另一个值。

我试试这个代码:

time1 = table1.Min(x=>x.StartTime)

但它会给出“14:52:06”作为输出

有什么建议么?

标签: c#linq

解决方案


首先从 DateTime 中提取时间,然后获取最小值

var dates = new List<DateTime>
{
    new DateTime(2020, 6, 9, 12, 35, 45),
    new DateTime(2020, 6, 10, 11, 35, 45)
};

var minTime = dates
    .Select(d => d.TimeOfDay)
    .Min();

#更新

如果要获取具有最小time部分的 DateTime 对象,请使用以下命令:

var dateWithMinTime = dates
    .OrderBy(d => d.TimeOfDay)
    .FirstOrDefault();

推荐阅读