Cuando trato de obtener el número de semana para el 31 de diciembre, devuelve 1. Cuando obtengo el número de semana para el 30 de diciembre, obtengo 52 --- que es lo que esperaría. El día lunes es correcto. Esto está en un RPI que ejecuta Ubuntu.
$ date -d "2018-12-30T1:58:55" +"%V%a"
52Sun
$ date -d "2018-12-31T1:58:55" +"%V%a"
01Mon
Mismo problema sin cadena de tiempo
$ date -d "2018-12-31" +"%V%a"
01Mon
linux
command-line
date
George Shafer
fuente
fuente
date
dice el manual ?Respuestas:
Esto te está dando la semana ISO que comienza un lunes.
Si desea mostrar 31/12 como la semana 52, debe usar
%U
, que no usa el estándar ISO:fuente
La definición del número de semana es diferente entre Europa y EE. UU., Probablemente según los estándares ISO frente a ANSI. Esto puede estar relacionado con una semana que es domingo - sábado o lunes - domingo, y esto nuevamente puede estar relacionado con la definición judía versus cristiana del Día del Señor (sábado vs domingo).
Para Europa, la semana número 1 contiene el primer jueves de enero y, por lo tanto, contiene un mínimo de 4 días (es decir, una mayoría) pertenecientes al nuevo año (jueves, viernes, sábado y domingo).
De todos modos, en los años en que TODOS (!!) los números de semana son +/- 1 diferentes entre Europa y los EE. UU., Esto es muy divertido al establecer horarios en empresas multinacionales. :-)
fuente