如何将数字转换为日期然后获取最新日期?

时间:2015-11-17 15:41:37

标签: asp.net vb.net

我有一个这样的数字列表:

20151114
20151115
20151116

我需要了解最新的一天。如果今天是2015/11/17,最新的数字应为:

 20151116

我认为我需要将这些数字转换为日期,然后比较每个数字以获取最新日期,但我不知道如何做到这一点。 我必须指出数字列表是动态创建的 我接受其他建议,谢谢。

2 个答案:

答案 0 :(得分:3)

如果您将List<string>中的这些日期作为单个成员,则可以使用模式yyyyMMdd将每个字符串元素解析为日期,然后按降序排序并选择第一个如下:

List<string> list = new List<string>
{
    "20151114",
    "20151115",
    "20151116",
};

var latestDate = list.Select(d => DateTime.ParseExact(d, "yyyyMMdd", CultureInfo.InvariantCulture))
    .OrderByDescending(d => d)
    .FirstOrDefault();

这会让你回来:

latestDate = {16/11/2015 12:00:00 AM}

另外要添加,因为您选择存储字符串日期的格式支持自然排序顺序,您还可以执行以下操作:

var latestStringDate = list.OrderByDescending(r => r).FirstOrDefault();

但是这会给你一个字符串日期,而不是一个DateTime对象。

答案 1 :(得分:1)

如果你有“yyyyMMdd”就更容易了。 转换为INT编号并选择更高的高度(bucle为),然后仅将一个数字转换为日期。 我认为这种方式更快。<​​/ p>