Wenn ich versuche, die Wochennummer für den 31. Dezember zu erhalten, wird 1 zurückgegeben. Wenn ich die Wochennummer für den 30. Dezember erhalte, erhalte ich 52 - was ich erwarten würde. Der Tag Montag ist richtig. Dies ist auf einem RPI unter Ubuntu.
$ date -d "2018-12-30T1:58:55" +"%V%a"
52Sun
$ date -d "2018-12-31T1:58:55" +"%V%a"
01Mon
Gleiches Problem ohne Zeitleiste
$ date -d "2018-12-31" +"%V%a"
01Mon
linux
command-line
date
George Shafer
quelle
quelle
date
dass sie verwendet wird?Antworten:
Dies gibt Ihnen die ISO-Woche, die an einem Montag beginnt.
Wenn Sie 12/31 als Woche 52 anzeigen möchten, sollten Sie verwenden
%U
, die nicht den ISO-Standard verwendet:quelle
Die Definition der Wochennummer unterscheidet sich zwischen Europa und den USA, wahrscheinlich ISO- und ANSI-Standards. Dies kann damit zusammenhängen, dass eine Woche Sonntag - Samstag oder Montag - Sonntag ist, und dies kann wiederum mit der jüdischen oder christlichen Definition des Tages des Herrn (Sabbat gegen Sonntag) zusammenhängen.
In Europa enthält Woche 1 den ersten Donnerstag im Januar und somit mindestens 4 Tage (dh die Mehrheit), die zum neuen Jahr gehören (Do-Fr-Sa-So).
In solchen Jahren, in denen sich ALLE (!!) Wochenzahlen zwischen Europa und den USA um +/- 1 unterscheiden, macht es jedenfalls großen Spaß, Zeitpläne in multinationalen Unternehmen festzulegen. :-)
quelle