Принуждение "даты" к использованию языкового стандарта, отличного от установленного по умолчанию
Есть ли способ заставить команду * nix "date" выводиться в определенном формате независимо от локального? Например, если я сегодня называю "date -u", на американской машине я получаю:
Mon Oct 15 13:15:29 UTC 2012
но на немецкой машине я получаю:
Mo 15. Okt 13:15:31 UTC 2012
Ответы
Ответ 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