Принуждение "даты" к использованию языкового стандарта, отличного от установленного по умолчанию - программирование
Подтвердить что ты не робот

Принуждение "даты" к использованию языкового стандарта, отличного от установленного по умолчанию

Есть ли способ заставить команду * nix "date" выводиться в определенном формате независимо от локального? Например, если я сегодня называю "date -u", на американской машине я получаю:

Mon Oct 15 13:15:29 UTC 2012

но на немецкой машине я получаю:

Mo 15. Okt 13:15:31 UTC 2012
4b9b3361

Ответ 1

Конечно, вы всегда можете указать формат самостоятельно:

date +%a, %b %d

или вы можете использовать временную переменную окружения:

:~$ LC_ALL=de_DE.utf8 date
Mo 15. Okt 15:34:11 CEST 2012
:~$ date
Mon Oct 15 15:33:24 CEST 2012

Как вы видите, только первая команда запускается с немецкой локалью.

Ответ 2

Вы можете изменить среду date. Я не знаю, является ли это лучшим способом (переменные, используемые при обработке локали, многочисленны), но работает следующее:

$ LANG=de_DE date
Mo 15 Okt 2012 09:34:12 EDT

(Январь избил меня на этот ответ примерно через минуту, но я оставлю свой ответ в надежде, что некоторые уточнят, какая переменная (LC_ALL, LANG, other) наиболее "подходит". )

Ответ 3

Вы пробовали следующее? (который я получил с страниц справочника даты)

# date -u +"%a %b %d %T %Z %Y"

Ответ 4

UTC:

date -u -R

Local:

date -R

Ответ 5

Сначала убедитесь, что установлен языковой пакет целевого языкового стандарта. В дистрибутивах GNU/Linux, выпущенных Debian, поддержка голландского языка устанавливается следующим образом:

$ sudo apt-get install language-pack-nl

Эта команда также автоматически установит language-pack-nl-base. Вот что я получаю, указав LC_TIME. Это более специфично, чем использование LC_ALL. (Указание LANG не работает на Xubuntu LTS.)

$ date '+%A %e %B %Y'
Friday 16 October 2015

$ LC_TIME='nl_BE.UTF-8' date '+%A %e %B %Y'
vrijdag 16 oktober 2015

Ответ 6

Во-первых, раскомментируйте желаемые строки /etc/locale.gen в /etc/locale.gen затем запустите locale-gen (оба от имени пользователя root). Убедитесь, что ваш терминал поддерживает требуемую кодировку, чтобы символы отображались.

Затем вы можете указать "временную" локаль для времени выполнения одной команды следующим образом:

LC_ALL="de_DE.UTF-8" date