GNU/Linux >> Linux Esercitazione >  >> Linux

Il comando data fornisce un numero di settimana errato per il 31 dicembre

Questo ti dà la settimana ISO che inizia di lunedì.

Il sistema di data della settimana ISO è effettivamente un sistema di calendario della settimana bisestile che fa parte dello standard di data e ora ISO 8601 emesso dall'Organizzazione internazionale per la standardizzazione (ISO) dal 1988 (ultima revisione nel 2004) e, prima di allora, era definito in ISO (R) 2015 dal 1971. Viene utilizzato (principalmente) nel governo e negli affari per gli anni fiscali, nonché nel cronometraggio. Questo era precedentemente noto come "codifica della data industriale". Il sistema specifica una settimana dell'anno in cima al calendario gregoriano definendo una notazione per le settimane ordinali dell'anno.


Un anno di numerazione delle settimane ISO (chiamato anche anno ISO in modo informale) ha 52 o 53 settimane intere. Cioè 364 o 371 giorni invece dei soliti 365 o 366 giorni. La settimana in più viene talvolta definita settimana bisestile, sebbene ISO 8601 non utilizzi questo termine.

Le settimane iniziano con il lunedì. L'anno di ogni settimana è l'anno gregoriano in cui cade il giovedì. La prima settimana dell'anno, quindi, contiene sempre il 4 gennaio. La numerazione ISO della settimana e dell'anno si discosta quindi leggermente dal gregoriano per alcuni giorni vicini al 1° gennaio.

Se vuoi mostrare il 31/12 come settimana 52, dovresti usare %U , che non utilizza lo standard ISO:

$ date -d "2018-12-31T1:58:55" +"%V%a"
01Mon
$ date -d "2018-12-31T1:58:55" +"%U%a"
52Mon

La definizione del numero della settimana è diversa tra Europa e Stati Uniti, probabilmente ISO rispetto agli standard ANSI. Questo può essere correlato a una settimana che è domenica-sabato o lunedì-domenica, e questo ancora può essere correlato alla definizione ebraica rispetto a quella cristiana del giorno del Signore (sabato vs domenica).

Per l'Europa, la settimana numero 1 contiene il primo giovedì di gennaio, e quindi contiene un minimo di 4 giorni (cioè la maggioranza) appartenenti al nuovo anno (gio-ven-sab-dom).

Ad ogni modo, in questi anni in cui TUTTI (!!) i numeri delle settimane sono diversi di +/- 1 tra Europa e Stati Uniti, questo è molto divertente con l'impostazione degli orari nelle aziende multinazionali. :-)


Linux
  1. 8 Esempi di comandi Quick Date in Linux

  2. date Esempi di comandi in Linux

  3. data:comando non trovato

  4. Stampa la data per il lunedì della settimana corrente (in bash)

  5. gpspipe restituisce timestamp corretto, ma data errata (21 dic 1995)

12 Esempi di comandi IP per utenti Linux

Bash For Loop

Comando Data in Linux

Trucchi di formattazione per il comando data di Linux

Exa:un sostituto moderno per ls Command

7 Esempi di comando Date in Linux