我正在使用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
答案 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())