formatdate 함수

formatdate 함수

formatdate 는 타임스탬프를 다른 시간 형식으로 변환해요.

출처: 문서

본문

formatdate 는 타임스탬프를 다른 시간 형식으로 변환해요.

formatdate(spec, timestamp)

Nomad에서 타임스탬프는 관례적으로 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

포맷 지정 문자열(spec)은 다음 표의 포맷 시퀀스를 포함하는 문자열이에요. 이 함수는 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" 특수 처리.

구두점 같은 비문자(non-letter) 문자는 출력물에 그대로 복제돼요. 포맷 문자열에 리터럴 문자를 포함하려면 작은따옴표 ' 로 감싸요. 리터럴 따옴표를 포함하려면 따옴표를 두 번 붙여 이스케이프해요.

> 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 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" (하지만 이것은 입력 형식이기도 해서 그런 변환은 중복돼요.)

더 알아보기 (Learn more)

  • format 은 임의의 데이터를 위한 더 일반적인 포맷팅 함수예요.