?
Solved

VB.net check if string is a date

Posted on 2009-07-12
7
Medium Priority
?
939 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 1600 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 400 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
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
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

On Demand Webinar: Networking for the Cloud Era

Did you know SD-WANs can improve network connectivity? Check out this webinar to learn how an SD-WAN simplified, one-click tool can help you migrate and manage data in the cloud.

Question has a verified solution.

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

This tutorial demonstrates one way to create an application that runs without any Forms but still has a GUI presence via an Icon in the System Tray. The magic lies in Inheriting from the ApplicationContext Class and passing that to Application.Ru…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
Michael from AdRem Software outlines event notifications and Automatic Corrective Actions in network monitoring. Automatic Corrective Actions are scripts, which can automatically run upon discovery of a certain undesirable condition in your network.…
In this video, Percona Solutions Engineer Barrett Chambers discusses some of the basic syntax differences between MySQL and MongoDB. To learn more check out our webinar on MongoDB administration for MySQL DBA: https://www.percona.com/resources/we…
Suggested Courses

765 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