1

我正在使用 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

4 回答 4

1

应该是:

sid_1.Substring(sid_1.Length - 2, 2)
于 2013-02-15T06:14:28.850 回答
1

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

如果您只想要格式中的最后两位数字DateString我建议您使用以下代码:

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

您可以在MSDN 文档Date.Tostring()中查看该方法的全部功能。

于 2013-02-15T06:20:59.193 回答
0

用这个 :

DateTime dt = DateTime.Now;
Console.WriteLine(dt.ToString("yy"));
于 2013-02-15T06:22:40.277 回答
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())
于 2013-02-15T06:26:49.133 回答