Quando tento obter o número da semana de 31 de dezembro, ele retorna 1. Quando recebo o número da semana de 30 de dezembro, recebo 52 --- o que seria de esperar. O dia segunda-feira está correto. Este é um RPI executando o Ubuntu.
$ date -d "2018-12-30T1:58:55" +"%V%a"
52Sun
$ date -d "2018-12-31T1:58:55" +"%V%a"
01Mon
Mesmo problema sem seqüência de tempo
$ date -d "2018-12-31" +"%V%a"
01Mon
linux
command-line
date
George Shafer
fonte
fonte
date
diz que está usando?Respostas:
Isso fornece a semana ISO, que começa na segunda-feira.
Se você deseja mostrar 31/12 como semana 52, use
%U
, que não usa o padrão ISO:fonte
A definição do número da semana é diferente entre a Europa e os EUA, provavelmente os padrões ISO versus ANSI. Isso pode estar relacionado ao fato de uma semana ser domingo - sábado ou segunda-feira - domingo, e isso novamente pode estar relacionado à definição judaica versus cristã do Dia do Senhor (sábado x domingo).
Para a Europa, a semana número 1 contém a primeira quinta-feira de janeiro e, portanto, contém um mínimo de 4 dias (ou seja, a maioria) pertencentes ao ano novo (Qui-Sex-Sáb-Dom).
De qualquer forma, nesses anos em que TODOS os números da semana (+) são +/- 1 diferentes entre a Europa e os EUA, isso proporciona muita diversão com a definição de horários em empresas multinacionais. :-)
fonte