Почему, когда я использую
Time.now.strftime('%Y%W')
или
Date.today.strftime('%Y%W')
они возвращают 201912, тогда как это должно быть 201913, как у нас на 13-й неделе, а не 12.
Как узнать номер текущей недели?
Если вы посмотрите в документации, там написано:
Week number: The first week of YYYY that starts with a Sunday or Monday (according to %U or %W). The days in the year before the first week are in week 0. %U - Week number of the year. The week starts with Sunday. (00..53) %W - Week number of the year. The week starts with Monday. (00..53)
1 января 2019 года было во вторник, так что это была бы неделя 0, а сегодня - неделя 12.
Time.now.strftime('%Y%V')
Даст вам результат, который вы ищете.
% V - номер недели года в году (01..53)
Вы должны искать недельный год.