On 05/10/2011 08:54 AM, Andreas Ericsson wrote: > On 05/10/2011 08:35 AM, Michael J Gruber wrote: >> Brian Gernhardt venit, vidit, dixit 09.05.2011 21:02: >>> (This is in response to a discussion on #parrot.) >>> >>> Rakudo (https://github.com/rakudo/rakudo/) uses tags of the form >>> YYYY.MM for their monthly releases. When we were attempting to find >>> the cause of a slowdown, somewhat was trying to find what commits >>> occurred after the 2011.01 release with "git log --after=2011.01". >>> His mistake was pointed out but this led to the confusion of why this >>> was parsed as "May 1 2011" instead of "Jan 1 2011". Shouldn't >>> date.c:match_multi_number() parse something with only two numbers as >>> a beginning of month instead of allowing it to pass through to the >>> generic parsing? >> >> I just don't think there is a format like that. There is dd.mm.[yy]yy >> and apparently also yyyy.mm.dd, but without leading zeros in mm for the >> latter. Our date parser also takes "." for a space so that you don't >> need to quote a space ("1.day.ago"). I can see the logic behind parsing >> 2011.01 as January 2011, but it's a stretch from the existing formats: >> > > It would be far more logical to parse "2011-01" as "January 2011" as > that's the preferred way to write month-precision dates in most > countries that use both the metric system and the gregorian calender. > > I've never seen that date-type with dot as a separator, but with the > dash it's very, very common. Seconded. ISO dates are getting pretty common, and in the extended format hyphens are the default separator between year, month, and date <https://secure.wikimedia.org/wikipedia/en/wiki/ISO_8601#Calendar_dates>. A few notes on support: GNU `date` 8.5 parses some ISO date strings correctly: $ date --date='2001-02-03' +%Y-%m-%d\ %H:%M:%S 2001-02-03 00:00:00 $ date --date='2001-02-03 04:05:06' +%Y-%m-%d\ %H:%M:%S 2001-02-03 04:05:06 Unfortunately, it doesn't handle partial dates: $ date --date='2001-02' +%Y-%m-%d\ %H:%M:%S date: invalid date `2001-02' But it does handle HH:MM: $ date --date='04:05' +%Y-%m-%d\ %H:%M:%S 2011-05-10 04:05:00 Basic format dates are sometimes parsed correctly: $ date --date='20010203' +%Y-%m-%d\ %H:%M:%S 2001-02-03 00:00:00 But not with seconds: $ date --date='20010203040506' +%Y-%m-%d\ %H:%M:%S 2001020304-05-06 00:00:00 The W3C recommends the use of ISO dates: <http://www.w3.org/QA/Tips/iso-date>, and their standards, like XML, typically support only ISO dates (or a subset thereof). Cheers, Victor Engmark -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html