问题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
我认为你正赶上':'在指定的日期和时间的结束。请检查并查看是否使子串长度更短(以排除':')会得到您所需的行为 –
您究竟想要完成什么? –