Solved

VB.net check if string is a date

Posted on 2009-07-12
7
936 Views
Last Modified: 2012-05-07
Hi

I would like to check if a string is actually a date. However the issue is that I have to check that the string is actually a date in a spacific format. If the string isnt in a date certain format then I dont want to be recognised as a date.

The format of the date that Im looking to recognise is DDMMMYY
and example of this is 14Jun08

How would I do that ?

If Datestring = 14Jun08 the is date = true
If date string = 14Jun then date = NOT TRUE

I know its a wiered one but IsDate recognises the 14Jun as a valid date

Michal
0
Comment
Question by:MichMat
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
7 Comments
 
LVL 55

Accepted Solution

by:
Jaime Olivares earned 400 total points
ID: 24836367
you need TryParseExact method:

Dim date as DateTime
If DateTime.TryParseExact(someString, "ddMMMyy", DateTimeStyles.None, date) Then ....

Reference: http://msdn.microsoft.com/en-us/library/ms131044.aspx
0
 
LVL 60

Assisted Solution

by:Kevin Cross
Kevin Cross earned 100 total points
ID: 24836400
Just don't forget the format provider (culture info).  Jaime's solution!
Dim s As String = "14Jun"
        
        Dim d As DateTime
        Dim enUS As New CultureInfo("en-US")
        If DateTime.TryParseExact(s, "ddMMMyy", enUS, DateTimeStyles.None, d) Then
            MsgBox("Is A Date")
        Else
            MsgBox("Is NOT A Date")
        End If

Open in new window

0
 
LVL 60

Expert Comment

by:Kevin Cross
ID: 24836403
Very nice, Jaime.  I was going to do this the harder way.
Dim s As String = "14Jun"
        'Imports System.Text.RegularExpressions
        If Regex.IsMatch(s, "\d{2}[A-Za-z]{3}\d{2}") And IsDate(s) Then
            MsgBox("Is A Date")
        Else
            MsgBox("Is NOT A Date")
        End If

Open in new window

0
Online Training Solution

Drastically shorten your training time with WalkMe's advanced online training solution that Guides your trainees to action. Forget about retraining and skyrocket knowledge retention rates.

 
LVL 55

Expert Comment

by:Jaime Olivares
ID: 24836429
>Very nice, Jaime.  I was going to do this the harder way. '
How you will check if month abreviatures are valid? You will need a huge regex for that
TryParseExact is designed to fulfill author's requirement.
0
 

Author Closing Comment

by:MichMat
ID: 31602656
Being a novice I couldnt get Jamies to work intill the correction from mwvista1, I hope that its ok to then award the points to both as each had a part in the sucessfull solution . Thank you I would have never looked at that.
0
 
LVL 39

Expert Comment

by:abel
ID: 24836447
Just a few dots on the i if I may:

1. IsDate("35Jun08") will yield true. If you use IsDate and you want to know it is a valid date with this type of date, use the following:

If IsDate(s) AndAlso DateTime.Parse(s).Day = Val(s) Then ...

2. Reversing the logic and using AndAlso would be more efficient (IsDate is likely faster then IsMatch). But that's just a minor treat of course and hardly relevant.

3. The suggestion from jaime is missing the third parameter:

DateTime.TryParseExact(someString, "ddMMMyy", CultureInfo.InvariantCulture, DateTimeStyles.None, date)

Anyway, just my 2p. I know that you guys have given excellent suggestions already ;-)
0
 
LVL 55

Expert Comment

by:Jaime Olivares
ID: 24836535
Sorry for the missing parameter. Sometimes we don't have a machine with VS installed to fully check it.
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Since .Net 2.0, Visual Basic has made it easy to create a splash screen and set it via the "Splash Screen" drop down in the Project Properties.  A splash screen set in this manner is automatically created, displayed and closed by the framework itsel…
Parsing a CSV file is a task that we are confronted with regularly, and although there are a vast number of means to do this, as a newbie, the field can be confusing and the tools can seem complex. A simple solution to parsing a customized CSV fi…
NetCrunch network monitor is a highly extensive platform for network monitoring and alert generation. In this video you'll see a live demo of NetCrunch with most notable features explained in a walk-through manner. You'll also get to know the philos…
Monitoring a network: how to monitor network services and why? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the philosophy behind service monitoring and why a handshake validation is critical in network monitoring. Software utilized …

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question