From: Jim Meyering Date: Tue, 30 Aug 2011 21:02:28 +0000 (+0200) Subject: date: support parsing of ISO-8601-with-"T" dates X-Git-Tag: v8.13~20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=df9cd0a426a9b52ddfcd1c17e368a89fa3c6fbde;p=thirdparty%2Fcoreutils.git date: support parsing of ISO-8601-with-"T" dates Thanks to an improvement in gnulib's parse-datetime module, commands like this now succeed (output manually indented): $ ./date -u -d 2004-02-29T16:21:42.33+07:00 +%FT%T.%N%z 2004-02-29T09:21:42.330000000+0000 * tests/misc/date: Add a test to exercise the new-in-gnulib parsing of ISO8601-with-"T" dates. * NEWS (New features): Mention it. * gnulib: Update, to pull in this parse-datetime improvement. --- diff --git a/NEWS b/NEWS index db5a474a09..44e631fc7b 100644 --- a/NEWS +++ b/NEWS @@ -54,6 +54,12 @@ GNU coreutils NEWS -*- outline -*- ** New features + date now accepts ISO 8601 date-time strings with "T" as the + separator. It has long parsed dates like "2004-02-29 16:21:42" + with a space between the date and time strings. Now it also parses + "2004-02-29T16:21:42" and fractional-second and time-zone-annotated + variants like "2004-02-29T16:21:42.333-07:00" + md5sum accepts the new --strict option. With --check, it makes the tool exit non-zero for any invalid input line, rather than just warning. This also affects sha1sum, sha224sum, sha384sum and sha512sum. diff --git a/gnulib b/gnulib index 47cb657eca..9926b90d51 160000 --- a/gnulib +++ b/gnulib @@ -1 +1 @@ -Subproject commit 47cb657eca1abf2c26c32c8ce03def994a3ee37c +Subproject commit 9926b90d5159916a539b49359b3589fe89c2d987 diff --git a/tests/misc/date b/tests/misc/date index dd72544c15..6f7a530b00 100755 --- a/tests/misc/date +++ b/tests/misc/date @@ -29,6 +29,7 @@ $ENV{TZ} = 'UTC0'; my $t0 = '08:17:48'; my $d0 = '1997-01-19'; my $d1 = "$d0 $t0 +0"; +my $dT = "${d0}T$t0+0"; # ISO 8601 with "T" separator my $ts = '08:17:49'; # next second my $tm = '08:18:48'; # next minute @@ -72,6 +73,8 @@ my @Tests = # ['2', "-d '$d1' +'%c'", {OUT=>"Sun Jan 19 $t0 1997"}], ['3', "-d '$d1' +'%d_%D_%e_%h_%H'", {OUT=>"19_01/19/97_19_Jan_08"}], + ['3T',"-d '$dT' +'%d_%D_%e_%h_%H'", {OUT=>"19_01/19/97_19_Jan_08"}], + ['4', "-d '$d1' +'%I_%j_%k_%l_%m'", {OUT=>"08_019_ 8_ 8_01"}], ['5', "-d '$d1' +'%M_%n_%p_%r'", {OUT=>"17_\n_AM_$t0 AM"}], ['6', "-d '$d1' +'%s_%S_%t_%T'", {OUT=>"853661868_48_\t_$t0"}],