创建日期时 C# 索引超出范围异常

C# Index Out Of Range Exception when creating date

我编写了一段代码,它连接到 SQL 服务器以从数据库中检索一些数据。我需要的其中一种数据是某物的存储日期。这工作正常,它连接并检索我想要的所有数据,但是当我尝试使用从 SQL 获得的检索日期创建 DateTime 时,它给了我一个索引超出范围异常。

这是它的代码:

//sDate contains 14/11/2014 so dateArr[0] contains 14, dateArr[1] contains 11 and dateArr[2] contains 2014

for(int i = 0; i < dataSet.Tables[0].Rows.Count; i++)
{
    if(dataSet.Tables[0].Rows[i][9] != DBNull.Value)
    {
        String[] sDateAndTime = dataSet.Tables[0].Rows[i][9].ToString().Split(' ');
        String sDate = sDateAndTime[0];
        String[] dateArr = sDate.Split('/');
        DateTime date = new DateTime(Convert.ToInt32(dateArr[3]), Convert.ToInt32(dateArr[2]), Convert.ToInt32(dateArr[1]));

        Console.WriteLine(dateArr[0] + " " + dateArr[1] + " " + dateArr[2]);
    }
}

奇怪的是错误只出现在DateTime date = new DateTime(Convert.ToInt32(dateArr[3]), Convert.ToInt32(dateArr[2]), Convert.ToInt32(dateArr[1]));

如果我注释掉那一行,它完全可以正常工作。有人可以让我知道我做错了什么吗?我已经尝试了各种方法,包括使用 DateTime.ParseExact 但它仍然不起作用(给出不同的错误)。

数组索引基于 0。试试这个:

DateTime date = new DateTime(Convert.ToInt32(dateArr[2]), Convert.ToInt32(dateArr[1]), Convert.ToInt32(dateArr[0]));