formatdate 함수
formatdate 함수
formatdate는 타임스탬프를 다른 시간 형식으로 변환해 주는 함수예요. Terraform 언어에서 타임스탬프는 보통 RFC 3339 "Date and Time format" 문법을 따르는 문자열로 표현해요. 사람이 읽기 쉽고 로케일에 의존하지 않는 형식 지정 기능을 제공한답니다.
출처: 문서
본문
formatdate는 타임스탬프를 다른 시간 형식으로 변환해요.
formatdate(spec, timestamp)
Terraform 언어에서 타임스탬프는 관례적으로 RFC 3339 "Date and Time format" 문법을 사용하는 문자열로 표현돼요. formatdate는 timestamp 인자가 이 문법을 따르는 문자열이어야 해요.
예시 (Examples)
> formatdate("DD MMM YYYY hh:mm ZZZ", "2018-01-02T23:12:01Z")
02 Jan 2018 23:12 UTC
> formatdate("EEEE, DD-MMM-YY hh:mm:ss ZZZ", "2018-01-02T23:12:01Z")
Tuesday, 02-Jan-18 23:12:01 UTC
> formatdate("EEE, DD MMM YYYY hh:mm:ss ZZZ", "2018-01-02T23:12:01-08:00")
Tue, 02 Jan 2018 23:12:01 -0800
> formatdate("MMM DD, YYYY", "2018-01-02T23:12:01Z")
Jan 02, 2018
> formatdate("HH:mmaa", "2018-01-02T23:12:01Z")
11:12pm
지정 문법 (Specification Syntax)
형식 지정 문자열은 다음 표의 형식 시퀀스를 포함하는 문자열이에요. 이 함수는 RFC822, RFC850, RFC1123 같은 흔한 기계 지향(machine-oriented) 타임스탬프 형식을 만들기 위한 것이에요. 로케일을 인식하지 않기 때문에 진정한 사람 중심의 날짜 형식에는 적합하지 않아요. 특히 월 이름과 요일 이름은 영어로만 만들 수 있어요.
형식 지정 문자열에는 다음 시퀀스가 포함될 수 있어요.
| | Sequence | Result |
| YYYY | 네 자리 이상의 연도, 예: "2006". |
| YY | 연도를 100으로 나눈 나머지를 최소 두 자리로 0 패딩한 값, 예: "06". |
| MMMM | 축약하지 않은 영어 월 이름, 예: "January". |
| MMM | 세 글자로 축약한 영어 월 이름, 예: "Jan". |
| MM | 두 자리로 0 패딩한 월 숫자, 예: 1월은 "01". |
| M | 패딩 없는 월 숫자, 예: 1월은 "1". |
| DD | 두 자리로 0 패딩한 일 숫자, 예: "02". |
| D | 패딩 없는 일 숫자, 예: "2". |
| EEEE | 축약하지 않은 영어 요일 이름, 예: "Monday". |
| EEE | 세 글자로 축약한 영어 요일 이름, 예: "Mon". |
| hh | 두 자리로 0 패딩한 24시간제 시각, 예: "02". |
| h | 패딩 없는 24시간제 시각, 예: "2". |
| HH | 두 자리로 0 패딩한 12시간제 시각, 예: "02". |
| H | 패딩 없는 12시간제 시각, 예: "2". |
| AA | 대문자 오전/오후 표시, 예: "AM". |
| aa | 소문자 오전/오후 표시, 예: "am". |
| mm | 두 자리로 0 패딩한 분, 예: "05". |
| m | 패딩 없는 분, 예: "5". |
| ss | 두 자리로 0 패딩한 초, 예: "09". |
| s | 초, 예: "9". |
| ZZZZZ | 시와 분을 콜론으로 구분한 시간대 오프셋, 예: "-08:00". |
| ZZZZ | 부호와 숫자만 있는 시간대 오프셋, 예: "-0800". |
| ZZZ | ZZZZ와 같지만 UTC일 때 특별히 "UTC"로 표시. |
| Z | ZZZZZ와 같지만 UTC일 때 특별히 "Z"로 표시. |
구두점 같은 문자(비영문자)는 출력에 그대로 그대로 재현돼요. 형식 문자열 안에 글자 그대로의 영문자를 포함하려면 작은따옴표 '로 감싸면 돼요. 따옴표 자체를 문자 그대로 포함하려면 따옴표를 두 번 연속으로 써서 이스케이프해요.
> formatdate("h'h'mm", "2018-01-02T23:12:01-08:00")
23h12
> formatdate("H 'o''clock'", "2018-01-02T23:12:01-08:00")
11 o'clock
이 형식 지정 문법은 독자가 문법을 잘 몰라도 어떤 형식이 나올지 쉽게 짐작할 수 있도록 만들어진 거예요. 따라서 흔한 형식에 대한 미리 정의된 축약(shorthand)은 없지만, 다양한 RFC 형식 문자열은 아래에 나와 있으니 필요할 때 구성에 복사해서 쓰면 돼요.
- RFC 822 및 RFC RFC 2822:
"DD MMM YYYY hh:mm ZZZ" - RFC 850:
"EEEE, DD-MMM-YY hh:mm:ss ZZZ" - RFC 1123:
"EEE, DD MMM YYYY hh:mm:ss ZZZ" - RFC 3339:
"YYYY-MM-DD'T'hh:mm:ssZ"(다만 이는 입력 형식이기도 해서 이런 변환은 불필요해요.)
관련 함수 (Related Functions)
더 알아보기 (Learn more)
format함수 — 임의 데이터 형식 지정timestamp함수 — 현재 시각 반환timeadd함수 — 타임스탬프에 기간 더하기- RFC 3339 — 타임스탬프 표준 문법