У меня есть скрипт bash, который берет строку даты, содержащую день года (юлианский день), и преобразует его в другой формат. Символ формата %j
не выполняет синтаксический анализ строки, как я ожидал согласно документам (man date
и man strftime
). Например, когда я делаю это:
date -j -f "%Y %j %H %M %S" "2013 2 12 34 56" "+%a %b %d %T %Z %Y"
Я получил:
Sat Mar 09 12:34:56 UTC 2013
Почему он показывает сегодняшний день (Sat March 09
)? Не должно ли вместо этого показать Wed Jan 02
(день 2 2013)?
Кажется, хорошо работает с другими форматами. Например, это:
date -j -f "%Y %m %d %H %M %S" "2013 01 02 12 34 56" "+%a %b %d %T %Z %Y"
правильно дает Wed Jan 02 12:34:56 UTC 2013
.
В чем дело? Я правильно использую символ %j
? Я получаю идентичные результаты на OS 10.10 Yosemite и 10.11 El Capitan.