Skip to content

date-time format pattern #45

Open
pixelshaded opened this Issue Jul 18, 2012 · 1 comment

2 participants

@pixelshaded

Trying to validate the following ISO 8601 date-time:

2012-07-18T14:14Z

^\d{4}-(?:0[0-9]{1}|1[0-2]{1})-[0-9]{2}T\d{2}:\d{2}:\d{2}.\d{3}Z$ doesnt seem to match

I tried one here:
http://underground.infovark.com/2008/07/22/iso-date-validation-regex/

^(\d{4})\D?(0[1-9]|1[0-2])\D?([12]\d|0[1-9]|3[01])(\D?([01]\d|2[0-3])\D?([0-5]\d)\D?([0-5]\d)?\D?(\d{3})?([zZ]|([+-])([01]\d|2[0-3])\D?([0-5]\d)?)?)?$

And it is able to match the date-time.

@cew821
cew821 commented Nov 15, 2013

I had a similar problem. Another post I found suggests this regex might work in terms of tolerating a long list of date-time formats that are technically 8601 compliant.

^([+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))(T\s?(\17[0-5]\d([.,]\d+)?)?([zZ]|([+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$

source: http://www.pelagodesign.com/blog/2009/05/20/iso-8601-date-validation-that-doesnt-suck/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.