AmanMJ
AmanMJ

Reputation: 117

How to get substring date (year) using vb.net?

I've been doing this, is it possible to get the middle string in datetime.

Example :

Basically my string return this '12/23/2015 12:00:00 AM'.

However, what i want is actually '15' from the year 2015.

I've been using something like this 'strDate = strDate.Substring(0, 9)',

which sometimes return me wrong when the date is something like this '1/2/2015 12:00:00 AM'

Can someone help me on this, i am not sure if we can get the middle.

Upvotes: 2

Views: 3696

Answers (3)

Tim Schmelter
Tim Schmelter

Reputation: 460028

Don't use string methods for this, use 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

Update: with CultureInfo.InvariantCulture and this format you don't even need to use TryParseExact, you can use Parse/TryParse immediately:

DateTime.TryParse(str, CultureInfo.InvariantCulture, DateTimeStyles.None, dt) 

MSDN: Custom Date and Time Format Strings, The "yy" Custom Format Specifier

Upvotes: 6

Madhawas
Madhawas

Reputation: 391

Try this

    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)

Upvotes: 0

James Thorpe
James Thorpe

Reputation: 32192

If you really want to treat it as just strings, you can get it by splitting twice. First on the space, then on the slashes:

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"

or all in one line:

Dim partYear as String = strDate.Split(" ")(0).Split("/")(2).Substring(2,2)

Upvotes: 0

Related Questions