date()

문자열을 지정한 형식에 따라 날짜 타입으로 변환합니다.

문법

date(DATE_EXPR, DATE_FMT[, LOCALE])

매개변수

DATE_EXPR
날짜 타입으로 변환할 문자열 또는 식.
DATE_FMT
자바 SimpleDateFormat 클래스에 정의된 날짜 파싱 형식 문자열. 다음과 같은 날짜 지시자를 사용할 수 있습니다.

날짜 지시자

지시자설명예제
G기원 전/후AD
y달력 기준 연도2025 (yyyy); 25 (yy)
MJuly (MMMM); Jul (MMM); 07 (MM), 7 (M)
w연 기준 몇 번째 주27 (해당 연도의 27번째 주)
W월 기준 몇 번째 주2 (해당 월의 두 번째 주)
D연 단위 일10
d월 단위 일189
E요일Tuesday (EEEE); Tue (E, EE, EEE)
F월 기준 몇 번째 요일2 (해당 월의 두 번째 요일)
u요일 숫자(1=월요일, …, 7=일요일)1
a오전/오후PM
H시간(0-23)0
k시간(1-24)24
K오전/오후 시간 (0-11)0
h오전/오후 시간 (1-12)12
m30
s55
S밀리초978
z시간대(일반 표기)Pacific Standard Time; PST
Z시간대(RFC 822 표기)-0800
X시간대(ISO 8601 표기)-08;-0800;08:00
LOCALE
ISO 639에 지정된 2자리 또는 3자리 로케일 코드 (기본값: en). 로케일 코드는 ISO 639 코드 목록을 참고하세요.

설명

date() 함수는 문자열을 DATE_FMT에 지정된 형식으로 파싱하여 날짜 타입으로 반환합니다. DATE_EXPRnull이거나 빈 문자열이면 null을 반환합니다. 파싱에 실패한 경우에도 null을 반환합니다. 배열이나 리스트를 전달하면 각 요소에 대해 재귀적으로 변환을 수행합니다.

로그프레소는 날짜 값의 범위를 엄격하게 검사하지 않습니다. 예를 들어 13월이 입력되면 다음 연도의 1월로 처리하고, 32일이 입력되면 다음 달로 넘어가는 방식으로 계산합니다.

오류 코드

오류 코드설명
90820날짜 형식 문자열이 잘못된 경우
90821로케일이 문자열 상수가 아닌 경우

사용 예

  1. 기본 날짜 문자열 변환

    json "{'val': '2024-06-10 00:30:55.978'}" | eval result = date(val, "yyyy-MM-dd HH:mm:ss.SSS")
    | # result: 2024-06-10 00:30:55+0900
    
  2. ISO 8601 형식 변환

    json "{'val': '2024-01-30T10:11:12.123Z'}" | eval result = date(val, "yyyy-MM-dd'T'HH:mm:ss.SSSX")
    | # result: 2024-01-30 19:11:12+0900
    
  3. 한국어 로케일을 사용한 날짜 변환

    json "{'val': '6월 1 토요일 2024 12:34:56'}" | eval result = date(val, "MMM dd EEEE yyyy HH:mm:ss", "ko")
    | # result: 2024-06-01 12:34:56+0900
    
  4. NULL 입력

    json "{'val': null}" | eval result = date(val, "yyyy-MM-dd")
    | # result: null
    

호환성

date() 함수는 소나 4.0 이전 버전부터 제공되었습니다.