[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now

x
?
Solved

VB.net check if string is a date

Posted on 2009-07-12
7
Medium Priority
?
944 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

Technology Partners: 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

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…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
In this video, Percona Director of Solution Engineering Jon Tobin discusses the function and features of Percona Server for MongoDB. How Percona can help Percona can help you determine if Percona Server for MongoDB is the right solution for …
We’ve all felt that sense of false security before—locking down external access to a database or component and feeling like we’ve done all we need to do to secure company data. But that feeling is fleeting. Attacks these days can happen in many w…

649 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