Появляется команда date для игнорирования настроек локали

Что я хочу сделать, это установить переменную окружения локали (LC_TIMEЯ думаю) к чему то date вывод в хорошем формате ISO.

Посмотрев на некоторые другие вопросы и ответы по Stack Exchange, вроде этого, я понял, что я на правильном пути, и что я использую en_DK язык должен делать то, что я хочу.

Но LC_TIME=en_DK date по-прежнему дает мне тот же формат даты, что и раньше. Я тоже пробовал настройку LANG а также LC_ALLи установив их en_DK.UTF-8 тоже, и они не имеют никакого эффекта. Просто для проверки работоспособности я попытался установить все эти ru_RU или же ru_RU.UTF-8 поскольку они будут иметь более очевидный эффект, но все равно не изменится.

Я обнаружил, что есть пакет под названием language-pack-ru и установил это, а также побежал sudo update-locale а также sudo dpkg-reconfigure locales, но все еще без изменений. Я не нашел language-pack-dk, мой /usr/share/i18n/SUPPORTED файл имеет en_DK.UTF-8 UTF-8, en_DK.ISO-8859-15 ISO-8859-15, en_DK ISO-8859-1так, насколько я могу сказать, я должен быть установлен.

Что мне не хватает?

2 ответа

Решение

Похоже, date Команда без аргументов выводит локаль "date_fmt", которая не в формате ISO 8601 в локали en_DK. Вы можете получить желаемый результат, добавив аргумент FORMAT - что-то вроде:

LC_TIME=en_DK.UTF-8 date +'%x %X'

Пожалуйста, смотрите man date для дальнейших последовательностей FORMAT.

Для дат в формате ISO dateтакже имеет -Iвариант:

       -I[FMT], --iso-8601[=FMT]
       output  date/time in ISO 8601 format. FMT='date' for date only (the default),
       'hours', 'minutes', 'seconds', or 'ns' for date and time to the
       indicated precision.  

Точность может быть сокращена: -Ihвместо -Ihours, так далее.

      $ date -I
2021-04-04

$ date -Ih
2021-04-04T17+02:00

$ date -Im
2021-04-04T17:37+02:00

$ date -Is
2021-04-04T17:37:34+02:00
Другие вопросы по тегам