Как правило, существует разница между %Y
и %G
для года в зависимости от вашего предполагаемого определения номера недели.
Для ISO 8601 недель (которые обычно используются, например, в Европе), вы здесь нужно использовать недельный год (%G
), а не дневной год (%Y
). Это важно по краям лет. Например, 2021-01-01 относится к 53 неделе 2020 года. В эту дату
%G
равно 2020
, но %Y
уже 2021
Если вы хотите проанализировать неделю ISO 8601, вы можете использовать следующий код, чтобы убедиться, что вы используете правильную неделю и год:
require 'date'
DateTime.strptime("20/2020", "%V/%G")
# => #<DateTime: 2020-05-11T00:00:00+00:00 ((2458981j,0s,0n),+0s,2299161j)>