如何使用vb.net获取子字符串日期(年)?

时间:2015-06-16 10:24:18

标签: vb.net

我一直这样做,是否有可能在日期时间获得中间字符串。

示例:

基本上我的字符串返回'12 / 23/2015 00:00:00 AM'。

然而,我想要的实际上是2015年的“15”。

我一直在使用这样的'strDate = strDate.Substring(0,9)',

当日期类似于'1/2/2015 12:00:00 AM'

时,有时会给我错误

有人可以帮我解决这个问题吗,我不确定我们能不能找到中间人。

3 个答案:

答案 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)