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

时间:2017-11-25 04:22:42

标签: c# arrays string datetime formatexception

我在我的控制器中使用它:

pycharm

错误:

  

System.FormatException:String未被识别为有效的DateTime。

2 个答案:

答案 0 :(得分:0)

考虑一下:

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 *⇒char + char = int
  • 98 + "/" = "98/"int + string = string
  • "98/" + '2' = "98/2"string + char = string

修复:

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

* ASCII代表:

  • '1'十进制为49

答案 1 :(得分:0)

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

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

顺便说一句stringchar的数组,因此代码arrDate[0]date[0]完全相同。只是要记住未来的事情。