string.substring在我的字符串上失败

fis*_*g3r 0 c# string substring

我有以下代码:

string date = dtxt.Substring(5, 2) + @"/" + dtxt.Substring(7, 2) + @"/" + dtxt.Substring(0, 4);
Run Code Online (Sandbox Code Playgroud)

我试图用它解析的文本是yyyyMMdd.所以从20150309我需要03/09/2015.我不使用dateTime格式,因为输入和输出都是字符串.

问题是我得到了ArgumentOutOfRangeException.string.Substring(X, Y)应该从X索引获取子串的Y长度,不应该吗?

Son*_*nül 7

在这种情况下不要使用字符串操作.

解析它DateTime并使用.ToString()类似方法格式化它;

string s = "20150309";
DateTime dt;
if(DateTime.TryParseExact(s, "yyyyMMdd", CultureInfo.InvariantCulture,
                          DateTimeStyles.None, out dt))
{
    dt.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture).Dump(); //03/09/2015
}
Run Code Online (Sandbox Code Playgroud)