Eu não queria pisar nos dedos do pé do @ Jordanm editando sua resposta demais, mas esses As frases da data da semana ISO que ele citou também ajudaram a entender a questão destacada pelo OP.
trecho # 1 - em relação às datas da semana ISO
The system uses the same cycle of 7 weekdays as the Gregorian calendar. Weeks start with Monday. ISO week-numbering years have a year numbering which is approximately the same as the Gregorian years, but not exactly since an ISO week-numbering year (also called ISO year or week year informally) has 52 or 53 full weeks. That is 364 or 371 days instead of the usual 365 or 366 days. The extra week is referred to here as a leap week, although ISO 8601 does not use this term.
trecho # 2 - também achei isso útil para entender o problema
The first week of a year is the week that contains the first Thursday of the year. It is also (equivalently) the week containing the 4th day of January.
Revisitando o comando de data
Então, se você der uma olhada na página date
man, você notará essa opção na seção de formatação.
%G year of ISO week number (see %V); normally useful only with %V
Portanto, quando quiser imprimir o ano junto com a semana ISO ( %V
), você realmente deve usar o %G
para o ano e não o típico %Y
.
Exemplo
Então, quando a data do meu sistema for declarada desta forma:
$ date
Mon Jan 6 15:13:32 EST 2014
Este comando irá relatar a data da semana ISO corretamente, como você está procurando:
$ date --date "last week" +"%G-%V"
2014-01