C# 如何将字符数组转换为DateTime.Parse的字符串?

C# 如何将字符数组转换为DateTime.Parse的字符串?,c#,arrays,string,datetime,formatexception,C#,Arrays,String,Datetime,Formatexception,我在控制器中使用此选项: char[] arrDate = date.ToArray(); DateTime dt = DateTime.Parse(arrDate[0] + arrDate[1] + "/" + arrDate[2] + arrDate[3] + "/" + arrDate[4] + arrDate[5] + arrDate[6] + arrDate[7]);

我在控制器中使用此选项:

char[] arrDate = date.ToArray();
DateTime dt = DateTime.Parse(arrDate[0] + arrDate[1] + "/" +
                             arrDate[2] + arrDate[3] + "/" +
                             arrDate[4] + arrDate[5] + arrDate[6] + arrDate[7]);
错误:

System.FormatException:未将字符串识别为有效的日期时间

考虑这一点:

var date = "11252017";
var arrDate = date.ToArray();
var strDate = arrDate[0] + arrDate[1] + "/" +
              arrDate[2] + arrDate[3] + "/" +
              arrDate[4] + arrDate[5] + arrDate[6] + arrDate[7]; // 98/25/2017
请注意:

  • '1'+'1'=98
    *⇒ <代码>字符+
    字符
    =
    int
  • 98+“/”=“98/”
    int
    +
    string
    =
    string
  • “98/”+“2”=“98/2”
    ⇒ <代码>字符串+
    字符
    =
    字符串
修复方法:

var dt = DateTime.Parse("" +
                        arrDate[0] + arrDate[1] + "/" +
                        arrDate[2] + arrDate[3] + "/" +
                        arrDate[4] + arrDate[5] + arrDate[6] + arrDate[7]);
*代表:

  • 十进制的
    '1'
    49

我假设
日期
类型为
字符串
。对于解析字符串,
DateTime
类有几种方法,其中
ParseExact
就是其中之一。此方法可以解析给定格式说明符和区域性的字符串。在您的情况下,日期可以这样解析:

var date = "11252017";
var dt = DateTime.ParseExact(date, "MMddyyyy", CultureInfo.InvariantCulture);

顺便说一下,
string
是一个
char
s数组,因此在代码中
arrDate[0]
date[0]
完全相同。只是为了将来要记住的事情。

Thanx我的问题已经解决了……它工作得很好。arrdate=date=“11202017”;dt={11/20/2017 12:00:00 AM}这是我的输出。是的,它是正确的。请看你是否可以接受/投票决定答案@雅舒