我一直这样做,是否有可能在日期时间获得中间字符串。
示例:
基本上我的字符串返回'12 / 23/2015 00:00:00 AM'。
然而,我想要的实际上是2015年的“15”。
我一直在使用这样的'strDate = strDate.Substring(0,9)',
当日期类似于'1/2/2015 12:00:00 AM'
时,有时会给我错误有人可以帮我解决这个问题吗,我不确定我们能不能找到中间人。
答案 0 :(得分:6)
不要使用字符串方法,使用DateTime.TryParseExact
:
Dim str = "12/23/2015 12:00:00 AM"
Dim dt As DateTime
If DateTime.TryParseExact(str, "MM'/'dd'/'yyyy hh:mm:ss tt", Globalization.CultureInfo.InvariantCulture, Globalization.DateTimeStyles.None, dt) Then
Dim yearOnly As String = dt.ToString("yy") ' 15
End If
更新:使用CultureInfo.InvariantCulture
这种格式,您甚至不需要使用TryParseExact
,您可以使用Parse
/ {{1}立即:
TryParse
MSDN :Custom Date and Time Format Strings, The "yy" Custom Format Specifier
答案 1 :(得分:0)
如果你真的想把它当作字符串,你可以通过拆分两次得到它。首先是空间,然后是斜杠:
Dim justDate as String = strDate.Split(" ")(0) 'contains "12/23/2015"
Dim justYear as String = justDate.Split("/")(2) 'contains "2015"
Dim partYear as String = justYear.Substring(2,2) 'contains "15"
或全部在一行:
Dim partYear as String = strDate.Split(" ")(0).Split("/")(2).Substring(2,2)
答案 2 :(得分:0)
试试这个
dim dateStr as string
dateStr = "12/23/2015 12:00:00 AM"
dim dateobj as new DateTime
dateobj = DateTime.Parse(dateStr)
dim year as integer
year = dateobj.Year
dim youWantStr = year.ToString().Substring(2)
Console.WriteLine(youWantStr)