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