Номер недели в Rails 3 strftime не соответствует стандарту ISO 8601?

В доке API указано:
%U – номер недели в году. Неделя начинается с воскресенья. (00..53)
%W - номер недели в году. Неделя начинается с понедельника. (00..53)
В стандарте ISO 8601 указано, что первой неделей года является неделя, содержащая первый четверг этого года.
2013 год начинается во вторник. Таким образом, неделя 1 начинается с 31 декабря 2012 г. как неделя 1 (для %W).

Код:

my_date_variable.strftime("%W").to_i

возвращается неделя № 1, начиная с 7 января 2013 г. Не соответствует тому, что сделал бы ISO 8601.


person Jerome    schedule 17.04.2013    source источник


Ответы (1)


Кажется, вам нужен %V, который поддерживается ruby ​​Date#strftime.

> Date.parse("December 31, 2012").strftime("%V") => "01"

person grzuy    schedule 06.02.2015
comment
Ей-богу, ты прав! Я подключился к определению директив номера недели, опережая директивы ISO 8601! - person Jerome; 06.02.2015