我有一個非常簡單的方法,它接受一個字符串,將其分解爲一個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