在vb.net上执行string.substring时出错

时间:2013-02-15 06:13:06

标签: vb.net string

我正在使用vb.net 2010,我想提取当前年份的最后2位数 例如,2013年应返回13.
我使用以下代码:

Dim sid_1 As String = Year(Now) 'or Year(Now).ToString
sid_1 = sid_1.Substring(sid_1.Length, 2)  'highlighted error

但它返回错误:

ArgumentOutOfRangeException was unhandled  
Index and length must refer to a location with the string.  
Parameter name: length

4 个答案:

答案 0 :(得分:1)

应该是:

sid_1.Substring(sid_1.Length - 2, 2)

答案 1 :(得分:1)

String.Substring()的第一个参数是函数开始获取的索引,它不能是长度,因为它已经超出了字符串的边界。

如果您只希望最后两位数字形成Date String格式的年份,我建议您使用此代码:

sid_1 = Date.Now.ToString("yy")

您可以在MSDN Documentation中看到Date.Tostring()方法的完整功能。

答案 2 :(得分:0)

使用此:

DateTime dt = DateTime.Now;
Console.WriteLine(dt.ToString("yy"));

答案 3 :(得分:0)

为什么SubString?只需使用StartIndex = 2即可获得13 :D

    Dim sid_1 As String = Year(Now) 'or Year(Now).ToString
    sid_1 = sid_1.Substring(2)  'highlighted error
    MsgBox(sid_1.ToString())