severity 809789 normal
tag 809789 + moreinfo
thanks

Brendan Reilly wrote:
> Dear Maintainer,

I am not the gawk maintainer but in this just another awk user.
However I recognize this as being a misunderstanding of %G.

> %G returns the date as 2015    It is 2016

%G does not return the current year.  G returns the year of the ISO
week number.  The ISO week number year is 2015 for the 1st and 2nd of
January 2016.  The ISO 8601 definition for the first week is the week
with the year's first Thursday in it.

     December 2015
  Su Mo Tu We Th Fr Sa
         1  2  3  4  5  2015
   6  7  8  9 10 11 12  2015
  13 14 15 16 17 18 19  2015
  20 21 22 23 24 25 26  2015
  27 28 29 30 31  1  2  2015
   3  4  5  6  7  8  9  2016 first Thursday
  10 11 12 13 14 15 16  2016
  17 18 19 20 21 22 23  2016
  24 25 26 27 28 29 30  2016
  31                    2016

This is actually an FAQ for 'date' which uses the same format options.
This is not a bug.  This is simply a misunderstanding of %G which
apparently is not what you want.

  
https://www.gnu.org/software/coreutils/faq/coreutils-faq.html#The-date-command-is-not-working-right_002e

  At the change of the year there are always many bug reports concerning
  date behaving incorrectly.  This is usually due to people using a
  mismatch of ISO and legacy date format specifiers.

    $ date -d 2008-12-31 +%Y%V
    200801

    $ date -d 2008-12-31 "+%G-%m-%d"
    2009-12-31

  The %Y and %U or %W options work in combination. (Use %U for weeks
  starting with Sunday or %W for weeks starting with Monday.)  The ISO %G
  and %V options work in combination.  Mixing them up creates
  confusion.  Instead use %Y and %U/%W together or use %G and %V
  together.

    $ date -d 2008-12-31 +%G%V
    200901

    $ date -d 2009-01-01 +%G%V
    200901

    $ date -d 2008-12-31 +%Y%U
    200852

    $ date -d 2009-01-01 +%Y%U
    200900

  Use of ISO week numbers tends to create confusion.  The ISO week
  numbering scheme is somewhat different from calendar week
  numbering.  ISO week numbers start on Monday of the week with the
  year’s first Thursday in it.  See Wikipidia’s ISO 8601 page
  (http://en.wikipedia.org/wiki/ISO_8601) or Wikipidia’s ISO week date
  page (http://en.wikipedia.org/wiki/ISO_week_date) for a good summary.

  ISO Week Dates can be created using the following format.

    $ date -d "2009-01-07 12:00:00 +0000" "+%G-W%V-%u"
    2009-W02-3

  See the standards documentation
  (http://www.opengroup.org/onlinepubs/9699919799/utilities/date.html)
  for more information with regards to date.

Does this resolve your issue?

Bob

Attachment: signature.asc
Description: PGP signature

Reply via email to