Lorsque j'essaie d'obtenir le numéro de semaine du 31 décembre, il renvoie 1. Lorsque j'obtiens le numéro de semaine du 30 décembre, j'obtiens 52 --- ce à quoi je m'attendrais. Le jour lundi est correct. C'est sur un RPI exécutant Ubuntu.
$ date -d "2018-12-30T1:58:55" +"%V%a"
52Sun
$ date -d "2018-12-31T1:58:55" +"%V%a"
01Mon
Même problème sans chaîne de temps
$ date -d "2018-12-31" +"%V%a"
01Mon
linux
command-line
date
George Shafer
la source
la source
date
?Réponses:
Cela vous donne la semaine ISO qui commence un lundi.
Si vous souhaitez afficher 12/31 comme semaine 52, vous devez utiliser
%U
, qui n'utilise pas la norme ISO:la source
La définition du numéro de semaine est différente entre l'Europe et les États-Unis, probablement ISO par rapport aux normes ANSI. Cela peut être lié à une semaine du dimanche au samedi ou du lundi au dimanche, et cela peut à nouveau être lié à la définition juive contre chrétienne du jour du Seigneur (sabbat vs dimanche).
Pour l'Europe, la semaine numéro 1 contient le premier jeudi de janvier et contient donc un minimum de 4 jours (soit une majorité) appartenant à la nouvelle année (jeu-ven-sam-dim).
Quoi qu'il en soit, dans les années où TOUS (!!) les numéros de semaine sont +/- 1 différents entre l'Europe et les États-Unis, cela donne beaucoup de plaisir à définir les horaires dans les entreprises multinationales. :-)
la source