我有一个非常简单的方法,它接受一个字符串,将其分解为一个char数组,然后从这些数据块中创建一个新的字符串。然而,它表现出色,我不明白为什么?这是一张断点图片。这种情况下的输入字符串是“20160622”。试图理解奇怪的字符串连接行为
编辑:对不起,图片。这是文中的问题。
internal class Program
{
private static void Main()
{
string test = "20160622";
Console.WriteLine(ConvertDateField(test));
Console.ReadKey();
}
private static string ConvertDateField(string date)
{
var temp = date.ToCharArray();
var output = temp[0] + temp[1] + temp[2] + temp[3] + "-" + temp[4] + temp[5] + "-" + temp[6] + temp[7] + " 00:00:00";
return output;
}
}
输出是“201-06-22 00:00:00”。
编辑2:我知道有可能有更好的方法来做到这一点。我试图理解的是为什么这段代码运行的方式。即。为什么6是唯一没有连接的字符?
正如你可以看到,第四字符,温度[3]其是“6”,没有被连接成输出串。为什么?
编辑3:我的问题解决了这样
private static string ConvertDateField(string date)
{
return DateTime.ParseExact(date, "yyyyMMdd", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd 00:00:00");
}
谢谢你史蒂夫的建议。
请发布[mcve]代码并输出为* text *而不是截图。从根本上说,这听起来像你应该解析价值并重新格式化它。 –
看起来像一个非常奇怪和坏的方式来格式化日期。使用带有格式字符串的DateTime.TryParse将日期解析为DateTime对象,然后使用带有格式字符串的ToString()将其输出为您想要的样式。 – SledgeHammer
什么是所有的反对票。我不明白。如果没有在调试器中尝试它,我无法弄清楚问题所在。不用说对于初学者。 – Steve