問題1:您是從13日指數截斷的時間,但在你的字符串時從第12位字符開始
解決方案1:你應該提取指數位置12的時間20(12 + 8)個字符。
替換此:
arr[3].TrimStart('[').Substring(0, 11) + " " + arr[3].TrimStart('[').Substring(13, 7)
這一點:
arr[3].TrimStart('[').Substring(0, 11) + " " + arr[3].TrimStart('[').Substring(12, 8)
建議您需要使用DateTime.ParseExact()
解析在下面需要自定義格式的日期時間:
DateTime.ParseExact(str, "dd/MMM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
完整代碼:
string arr = "[20/Feb/2014:14:21:32 +0100]";
string str=arr.TrimStart('[').Substring(0, 11) + " " + arr.TrimStart('[').Substring(12, 8);
DateTime strDateTime = DateTime.ParseExact(str, "dd/MMM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
我不認爲第一個冒號應該有 – Rob
我認爲你正趕上':'在指定的日期和時間的結束。請檢查並查看是否使子串長度更短(以排除':')會得到您所需的行爲 –
您究竟想要完成什麼? –