Warning: excessive nitpicking ahead.
Ashley Winters skribis 2004-12-08 10:51 (-0800): > rule year { \d<4> } \d**{4} Or, well, \d**{2,4} > rule month { \d<2> } \d**{2} > rule date { <year> -? <month> -? <day> } rule week { \d**{2} } rule yday { \d**{3} } rule date { <year> [ -? [ <yday> | [ [ W<week> | <month> ] [ -? <day> ]? ] ] ]? } # :) > rule time { <hour> \:? <minute> \:? <second> [\. <fraction>]? } Likewise making parts optional, and "." can also be ",". > rule datetime { <date> T <time> } rule timezone { Z | <[+-]> <hour> [ \:? <minute> ]? } rule datetime { <date> [ T <time> <timezone>? ]? } And still this isn't a full ISO8601 grammar. But I it now covers every notation that I have seen in the wild so far. A useful source of information, apart from the ISO standard itself, is DateTime-Format-ISO8601. Juerd