날짜 명령의 출처 기본 US 형식

날짜 명령의 출처 기본 US 형식

date미국 로케일에는 매우 이상한 기본 형식이 있는 것 같습니다. Thu Jul 9 17:00:00 EDT 2020공백으로 채워진 월 날짜를 사용하고 (24시간!) 시간을 월 + 일과 연도 사이의 중간에 두는 것입니다.

이것도 일종의 기준인가요? 그거 어디서 났어?

답변1

형식은 표준에 정의되어 있지만 표준에 지정되어 있지는 않습니다 en_US.POSIX에서는, POSIX 로케일에만 관심이 있고 상태

형식 지정 피연산자가 지정되지 않은 경우 POSIX 로케일의 출력은 다음을 지정하는 것과 동일해야 합니다.

date "+%a %b %e %H:%M:%S %Z %Y"

역사 속(예를 들어Unix V7)에서는 date다음을 사용합니다 .asctime, 다른 형식을 사용합니다.

Sun Sep 16 01:03:52 1973\n\0

POSIX 형식은 시간과 연도 사이에 시간대를 추가합니다.

POSIX에서 정의한 형식의 이력은 모르지만 asctime일부러 기반 형식이라고 가정합니다.

asctime추론이 반드시 확실하지는 않더라도 역사는 적어도 탐구될 수 있습니다 .

에 따라V3, ctime생성된 출력은 다음과 같은 형식입니다.

Oct  9 17:32:24\0

V4는 평일과 연도를 추가합니다., 위의 형식을 중심으로 여전히 사용되는 형식을 생성합니다 asctime.

Sun Sep 16 01:03:52 1973\n\0

따라서 그 형태는 "유기적으로" 발전한 것으로 보인다. 처음에는 월, 날짜 및 시간만 포함됩니다. 요일과 연도를 추가한 후 기존 형식을 유지하는 것 같아서 앞에 요일이 추가되고 끝에 연도가 추가됩니다. 마지막으로 타임존을 추가할 때, 연도보다는 시간과 관련이 있다고 볼 수도 있겠네요...

관련 정보