Skip to main content

How do I determine if a string is date format?



I have some strings like this: 2012-02-05T07:42:47.000Z mixed with other strings. It is always in this format. (but the numbers are not the same, of course...the times are different) (not Sun, 05 Feb 2012 07:42:47 GMT )





I want to know whether a string matches that format. How can I determine that? It's so complicated with the colons and dots and stuff.


Comments

  1. Regex [0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]{3}Z

    ReplyDelete
  2. Isn't there are way to parse it directly into Java without a regex?
    With a regex you know IF it is a date but if you need also the value I should check on some date parser function.

    ReplyDelete
  3. The ones for which !isNaN(+new Date(s))?

    ReplyDelete
  4. Try matching with the following regular expression:

    var pattern = /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/;
    var d = "2012-02-05T07:42:47.000Z";
    if(d.match(pattern) !== null){
    //success
    } else {
    //failed
    }

    ReplyDelete
  5. You can use Date.parse( your_string ) and check the result. This will check any allowed date format, unlike regex.
    http://www.w3schools.com/jsref/jsref_parse.asp
    Just realized your string is always in a given format, still unlike regex that function will check if day/month/year are correct etc. So maybe carry 2 checks: 1st to check string format, 2nd to check if numbers are right.

    ReplyDelete

Post a Comment

Popular posts from this blog

Slow Android emulator

I have a 2.67 GHz Celeron processor, 1.21 GB of RAM on a x86 Windows XP Professional machine. My understanding is that the Android emulator should start fairly quickly on such a machine, but for me it does not. I have followed all instructions in setting up the IDE, SDKs, JDKs and such and have had some success in staring the emulator quickly but is very particulary. How can I, if possible, fix this problem?