4

У меня есть скрипт 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.

1 ответ1

0

Это ошибка. Селектор /bin/date «% j» (день года) не работает (по крайней мере, в OS X 10.10 и 10.11). Я отправил отчет об ошибке в Apple (# 30975711).

Редактировать: Кажется, будет исправлено в OS X 10.12 Sierra.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .