이 date
명령은 현재 날짜와 시간을 다음과 같이 출력합니다 Fri Apr 12 15:04:03 UTC 2013
.
우리가 사용할 수있는 사용자 정의 형식으로 출력 일시하게하려면 date +FORMAT
이 같은 예를 들어, date "+%Y-%m-%dT%H:%M:%S%:z"
같은 것을 제공합니다 2013-04-12T15:04:37+00:00
.
그러나 나는 무엇을 알고 싶어 %Y
, %m
, %d
, %H
, %M
, %S
집합 (즉, 용어)라고, 등. 또한, T
다른 것과는 달리 소위 무엇 입니까?
답변
date
명령 의 POSIX 사양에 사용 된 용어 는 “변환 사양”입니다.
의 형식 문자열 date
명령 밀접 C의 대한 형식 문자열에 기초 printf
함수; C 표준은 또한 %d
“변환 사양” 과 같은 것을 말합니다 .
T
앞에는 %
문자가 없습니다 : “다른 모든 문자는 변경없이 출력으로 복사됩니다.”
의 POSIX 설명의 변경 내역 섹션에 따르면 date
:
LC_TIME 범주와의 일관성을 위해 필드 디스크립터 대신 변환 스펙을 참조하도록 DESCRIPTION이 업데이트되었습니다.
따라서 이전 버전의 사양에서는 “필드 설명자”라는 문구가 사용되었지만 “변환 사양”은 현재 공식 용어입니다.
물론 당신이 의미하지 않는 이 그런 식으로 그들에게 참조.
답변
“이스케이프 시퀀스”또는 (이 경우 “이스케이프 된 시퀀스의 특수 문자”)가 일반적인 참조 방법이라고 생각합니다. 백 슬래시 및 이스케이프 처리 된 시퀀스는 C (예 : printf)에서 많이 사용되므로 쉘에 대한 프롬프트 지정과 같이 여러 Unix 명령으로 필터링되었습니다.
“탈출 시퀀스”는 “% Y”, “% m”, “% d”등입니다. “특수 문자”는 “Y”, “m”, “d”등입니다. “%”는 “이스케이프 문자”(다음 문자에 특이하고 특별한 의미를 부여하는 문자)입니다.
답변
이 문서는 IBM의 정보 센터에서 명확하게한다고 영문 에서 %Y
, %m
, %d
, %H
, %M
, %S
, 등이 “라고 필드 설명자 “.
각 선행되어야 필드 설명 A를 % (퍼센트 기호). 시스템은 필드 설명자를 지정된 값으로 바꿉니다. […]
date
명령은 다른 문자를 변경하지 않고 출력에 복사합니다.
그것은 내 두 가지 질문 (약 % n & T)에 대답합니다. 그리고 나는 이것이 가능한 권위있는 것이라고 생각합니다.
답변
다른 사람들이 말했듯이, T
은 문자 그대로 T
입니다. 그러나 구체적으로 말하면 예제 는 날짜 및 시간에 대한 ISO-8601 사양을 date "+%Y-%m-%dT%H:%M:%S%:z"
준수하는 형식 문자열 인 것으로 보입니다 . 여기에 날짜와 시간을 구분하는 구분자가 있습니다.T