格式化Excel文件以获取正确的日期格式

时间:2014-08-21 15:55:47

标签: c# excel list date

我有list,它是由excel文件中的数据生成的。在excel中,我有一个日期列,其中包含以下行

03/15/2014  
02/15/2014   
01/15/2014   
12/14/2014   
11/14/2014

上述日期应该与MM/dd/yyyy类似,但由于某些原因,生成excel文件的应用程序只是将数据作为文本进行处理,而不是以yyyy格式生成,它只保留一年这一天提交并随机生成一年。

因此,在上面的示例中,数据03,02,01,12,11是我想要的月份,但15,15,15,14,14应为年而不是在上例中生成为日。

实际数据应为

03/dd/2015  
02/dd/2015   
01/dd/2015   
12/dd/2014   
11/dd/2014

现在,C#中是否有任何方法可以处理这个日期列表并获得另一个正确日期的列表?

前提是dd可以是任何日期,但所有日期应该相同

3 个答案:

答案 0 :(得分:1)

如果您可以在Excel中添加额外的列来转换值:

=DATE(DAY(A1)+2000,MONTH(A1),1)

如果c# dt1变量中有'错误'日期:

DateTime dt2 = new DateTime(dt1.Day+2000,dt1.Month,1);

答案 1 :(得分:0)

使用DateTime.Parse(String, IFormatProvider)DateTime.ParseExact将字符串转换为DateTime。

然后,您可以使用相应的properties提取日,月和年。 归功于Amsakanna

答案 2 :(得分:0)

我用这个作为我的答案

foreach(var item in SourceList)
    {
        int newYear = Convert.ToInt32(item.Year.ToString().Substring(0,2) + item.Day.ToString());
        DateTime result = new DateTime(newYear, item.Month, 10);
        ResultList.Add(result);
    }