Fedora 30에서는 현재 데스크탑 환경에서 날짜를 24시간 형식으로 표시합니다. chronyd를 통해 시간을 동기화하고 있습니다. 그러나 CLI에서는 Fri 22 Nov 2019 02:47:51 PM EST
모든 사용자에게 시간이 표시됩니다.
24시간제를 사용하도록 시간 형식을 지정하고 싶습니다. timedatectl
사용자로 설정하는 것과 다시 로그인하는 것에는 차이가 없습니다.
답변1
date
명령줄에서 이를 사용 하면 다음 Fri 22 Nov 2019 02:47:51 PM EST
과 같은 결과가 반환됩니다.지역 설정현재 설정은 12시간 형식을 지정하는 로케일입니다.
locale
현재 로케일을 보려면 입력하세요 . 기본적으로 모든 로케일은 환경 변수일 뿐이지만 이들 사이에는 일부 종속성이 있습니다.
로케일 설정의 논리는 다음과 같습니다.
첫째, 이
LANG
변수는 모든 기본 로케일을 정의합니다.LC_*
로케일 카테고리, 특정 카테고리에 대해 더 구체적인 설정이 없는 경우.LC_CTYPE
각 로케일 범주에는 사용된 문자 집합,LC_COLLATE
정렬 순서,LC_TIME
날짜 및 시간 표현 과 같은 이름이 있습니다 . 로캘 범주 이름에 해당하는 환경 변수가 있으면 재정의됩니다LANG
.마지막으로 궁극적인 적용 범위가 있습니다
LC_ALL
. 설정되면 다른 모든 로케일보다 우선 적용됩니다.export LC_ALL=C
이는 스크립트에서 사용하는 모든 명령의 출력이 출력 구문 분석을 더 어렵게 만들 수 있는 현지화된 형식이 아닌 POSIX 기본 미국 영어 형식이 되도록 보장하기 위해 스크립트 또는 이와 유사한 데 자주 사용됩니다 . (물론, 스크립트에서 사람이 소비할 목적으로 출력을 구문 분석하는 것은 애초에 이상적이지 않습니다. 명령에 "스크립트 친화적인 출력" 옵션이 있으면 이를 사용해야 합니다!)
역사적으로 RedHat/Fedora에서는 시스템 기본 로캘이 /etc/sysconfig/i18n
파일에 있어야 합니다(i18n = 국제화[s|z]ation, i와 n 사이의 18자). 최신 버전에는 localectl
로캘 및 키보드 레이아웃 설정을 지속적으로 쿼리하고 수정하는 데 사용할 수 있는 명령이 있어야 합니다 . 환경 변수 설정은 항상 시스템 전체 로캘 기본값을 재정의하는 데 사용될 수 있습니다!
기본 en_US.UTF-8
로케일을 사용하는 경우 이는 en_GB.UTF-8
가장 가까운 24시간 시간 표현이 됩니다. 설정하려면 다음을 사용하세요.
localectl set-locale LC_TIME=en_GB.UTF-8
그런 다음 로그아웃했다가 다시 로그인하면 세션에 변경 사항이 적용됩니다.
다른 로캘을 사용하는 경우 localectl list-locales
사용 가능한 로캘 정의 보기를 사용하세요.
확실하지 않은 경우 원하는 로케일을 명령의 환경 변수로 지정하여 출력을 테스트할 수 있습니다 date
.
$ LC_TIME=en_GB.UTF-8 date
Sat 23 Nov 15:47:16 EET 2019
$ LC_TIME=en_US.UTF-8 date
Sat 23 Nov 2019 03:47:19 PM EET