如何匹配不同格式的时间戳

时间:2015-08-17 15:43:39

标签: c# list timestamp

我有两个列表,用于存储时间戳。但是,两个列表中的格式不同,ListA将其存储为07/27/2015 18:10:14,而ListB将其存储为12:33。我的目标是搜索两个列表并匹配时间戳并输出它们。通过相同的时间戳,我的意思是..

让我们说列表A和列表B具有以下元素......

List A:                 List B:
07/27/2015 18:10:14     18:11   
07/29/2015 18:20:45     18:20
07/29/2015 18:20:11     19:23
07/11/2015 18:21:23     20:45

请注意,ListB不包含秒信息,但列表A包含秒信息。我希望输出格式如下:

07/29/2015 18:20:45     18:20
07/29/2015 18:20:11

目前,我可以执行搜索,但只能在结果中包含ListA中的一个时间戳。我想包括所有。任何帮助将不胜感激!

我的尝试如下:

 for (int i = 0; i < ListA.Count(); i++)
        {
            for (int j = 0; j < ListB.Count(); j++)
            {
                if (ListA[i].Substring[11,5] == ListB[j])
                {
                    Console.WriteLine("Match Found");
                }
            }
        }

EDIT ::

List A:                 List B:
07/27/2015 18:10:14     18:11   
07/29/2015 18:20:45     20:45
07/29/2015 18:20:11     19:23
07/11/2015 18:21:23     18:20

1 个答案:

答案 0 :(得分:2)

通过将它们解析回DateTime对象并从每个对象中获取小时和分钟,您可以准确地比较它们

for (int i = 0; i < ListA.Count(); i++)
{
    bool found = false;

    for (int j = 0; j < ListB.Count(); j++)
    {
        DateTime aItem = DateTime.ParseExact(ListA[i], "MM/dd/yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);
        DateTime bItem = DateTime.ParseExact(ListB[j], "HH:mm", System.Globalization.CultureInfo.InvariantCulture);

        if (aItem.ToString("HH:mm") == bItem.ToString("HH:mm"))
        {
              if (!found)
              {
                  Console.WriteLine("{0}    {1}", ListA[i], ListB[j]);
                  found = true;
              }
              else
                  Console.WriteLine(ListA[i]);
        }
    }
}

编辑:抱歉,我完全误读了您的问题