«дата» в терминале теперь в 12-часовом формате на Debian Buster

После обновления до Debian Buster при запуске date на терминале часы отображаются в формате AM / PM вместо 24-часового времени. Это ново и происходит во всех обновленных установках.

Контейнер Docker:

yeri@b9b3e889fd76 ~ $ date
Thu 01 Aug 2019 11:28:25 PM +08

Собственный хост:

liana ~ # date
Thu 01 Aug 2019 11:32:44 PM +08

Digital Ocean:

ui0 ~ # date
Thu 01 Aug 2019 05:33:11 PM CEST

Это довольно раздражает, и я не просил об этом, но не могу найти настройки, чтобы это изменить.

Единственное, что я могу придумать, - это то, что в качестве локали выбран США; но так было и раньше (Debian 9):

ui0 ~ # cat /etc/default/locale 
#  File generated by update-locale
LANG=en_US.UTF-8
yeri@b9b3e889fd76 ~ $ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8

yeri@b9b3e889fd76 ~ $ date
Sun 04 Aug 2019 04:39:14 PM +08

yeri@b9b3e889fd76 ~ $ locale date_fmt
%a %d %b %Y %r %Z

yeri@b9b3e889fd76 ~ $ locale -k LC_TIME
abday="Sun;Mon;Tue;Wed;Thu;Fri;Sat"
day="Sunday;Monday;Tuesday;Wednesday;Thursday;Friday;Saturday"
abmon="Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec"
mon="January;February;March;April;May;June;July;August;September;October;November;December"
am_pm="AM;PM"
d_t_fmt="%a %d %b %Y %r %Z"
d_fmt="%m/%d/%Y"
t_fmt="%r"
t_fmt_ampm="%I:%M:%S %p"
era=
era_year=""
era_d_fmt=""
alt_digits=
era_d_t_fmt=""
era_t_fmt=""
time-era-num-entries=0
time-era-entries="S"
week-ndays=7
week-1stday=19971130
week-1stweek=1
first_weekday=1
first_workday=2
cal_direction=1
timezone=""
date_fmt="%a %d %b %Y %r %Z"
time-codeset="UTF-8"
alt_mon="January;February;March;April;May;June;July;August;September;October;November;December"
ab_alt_mon="Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec"
2
задан 14 August 2019 в 14:54
1 ответ

Похоже, что причина этого изменения заключается в том, что в buster обновлена локаль en_US. Так как она предназначена для представления обычаев США, то есть для указания времени в 12-часовом формате, время теперь отображается как таковое, хотя это может стать сюрпризом для всех, кто полагался на старое поведение.

Решение, как уже упоминалось @JosefZ в комментариях, заключается в использовании локали, которая имеет нужные вам настройки времени, например C.UTF-8. Чтобы сделать это изменение постоянным в Debian, вы должны запустить:

update-locale LC_TIME=C.UTF-8

Это устанавливает определение для LC_TIME в файле /etc/default/locale. Более подробную информацию о самом изменении можно найти в Ошибка Debian #877900

4
ответ дан 3 December 2019 в 09:56

Теги

Похожие вопросы