이 절에서는 패턴 문자의 문자열을 사용하여 dateTime 형식을 지정할 수 있는 방법에 대한 정보를 제공합니다.
날짜 또는 시간을 문자열로 변환하는 경우 변환을 지시하는 형식 패턴을 적용할 수 있습니다. 이 패턴은 날짜 또는 시간을 문자열로 형식화했거나 문자열을 날짜 또는 시간으로 구문 분석한 경우에 적용됩니다.
형식화 하는 동안(예 : dateTime을 문자열로) 토큰 세트 또는 패턴이 그에 상응하는 소스로 바뀝니다. 그림 1에는 이에 대한 적용 방법이 표시되어 있습니다.
문자열이 구문 분석되면(예: dateTime으로 변환) 토큰 세트 또는 패턴이 사용되어 해당 문자열 부분에 의해 표시되는 해당 대상 dateTime의 부분이 판별됩니다. 그림 2에는 이에 대한 적용 방법이 표시되어 있습니다.
표현식 패턴이 다음과 같이 정의됩니다.
.--------------.
| .- -. |
V V | |
>------+-symbol-+->
'-string-'
다음 표에는 dateTime과 관련하여 문자열을 형식화 또는 구문 분석하는 데 하나의 패턴으로 사용하는 데 허용되는 문자가 나열되어 있습니다.
기호 | 의미 | 표시 형식 | 예 |
---|---|---|---|
a | 오전 또는 오후 마커 | 텍스트 | 입력 am, AM, pm, PM. 출력 AM 또는 PM |
d | 월의 일 수(1-31) | 숫자 | 1, 20 |
dd | 월의 일 수(01-31) | 숫자 | 01, 31 |
D | 년의 일(1-366) | 숫자 | 3, 80, 100 |
DD | 년의 일(01-366) | 숫자 | 03, 80, 366 |
DDD | 년의 일(001-366) | 숫자 | 003 |
e | 주의 일(1-7) | 숫자 | 26 |
EEE | 주의 요일 | 텍스트 | Tue |
EEEE | 주의 요일 | 텍스트 | 화요일 |
F | 월에서 주의 일(1-5) | 숫자 | 2(7월의 둘째 수요일)3 |
G | 기원 | 텍스트 | BC 또는 AD |
h | 오전 또는 오후별 시간(1-12) | 숫자 | 6 |
hh | 오전 또는 오후별 시간(01-12) | 숫자 | 06 |
H | 24시간 형식인 일의 시간(0-23) | 숫자 | 77 |
HH | 24시간 형식인 일의 시간(00-23) | 숫자 | 077 |
I | ISO8601 날짜/시간(yyyy-MM-dd'T'HH:mm:ss.SSSZZZ까지) | 텍스트 | 2004-10-07T12:06:56.568+01:005 |
IU | ISO8601 날짜/시간(위와 같지만 시간대가 +00:00인 경우에는 출력 "Z"가 있는 ZZZ) | 텍스트 | 2004-10-07T12:06:56.568+01:00, 2003-12 -15T15:42:12.000Z 5 |
k | 24시간 형식인 일의 시간(1-24) | 숫자 | 87 |
k | 24시간 형식인 일의 시간(01-24) | 숫자 | 087 |
K | 오전 또는 오후별 시간(0-11) | 숫자 | 9 |
KK | 오전 또는 오후별 시간(00-11) | 숫자 | 09 |
m | 분 | 숫자 | 4 |
mm | 분 | 숫자 | 04 |
M | 숫자 월 | 숫자 | 5, 12 |
MM | 숫자 월 | 숫자 | 05, 12 |
MMM | 이름 지정된 월 | 텍스트 | Jan, Feb |
MMMM | 이름 지정된 월 | 텍스트 | 1월, 2월 |
s | 초 | 숫자 | 5 |
ss | 초 | 숫자 | 05 |
S | 데시세컨드 | 숫자 | 78 |
SS | 센티세컨드 | 숫자 | 708 |
SSS | 밀리세컨드 | 숫자 | 7008 |
SSSS | 1/10,000 초 | 숫자 | 70008 |
SSSSS | 1/100,000 초 | 숫자 | 700008 |
SSSSSS | 1/1,000,000 초 | 숫자 | 7000008 |
T | ISO8601 시간(HH:mm:ss.SSSZZZ까지) | 텍스트 | 12:06:56.568+01:005 |
TU | ISO8601 시간(위와 같지만 +00:00의 시간대에서는 'Z'로 바뀜) | 텍스트 | 12:06:56.568+01:00, 15:42:12.000Z5 |
w | 연도의 주 | 숫자 | 7, 532 |
ww | 연도의 주 | 숫자 | 07, 532 |
W | 월의 주 | 숫자 | 24 |
yy | 연도 | 숫자 | 961 |
yyyy | 연도 | 숫자 | 19961 |
YY | 연도: 항상 연도의 주와 함께 사용 | 숫자 | 962 |
YYYY | 연도: 항상 연도의 주와 함께 사용 | 숫자 | 19962 |
zzz | 시간대(약어 이름) | 텍스트 | gmt |
zzzz | 시간대(전체 이름) | 텍스트 | GMT(Greenwich Mean Time) |
Z | 시간대(+/-n) | 텍스트 | +3 |
ZZ | 시간대(+/-nn) | 텍스트 | +03 |
ZZZ | 시간대(+/-nn:nn) | 텍스트 | +03:00 |
ZZZU | 시간대(ZZZ, "+00:00"이 "Z"로 바뀜) | 텍스트 | +03:00, Z |
ZZZZ | 시간대(GMT+/-nn:nn) | 텍스트 | GMT+03:00 |
ZZZZZ | 시간대(ZZZ, 콜론 없음)(+/-nnnn) | 텍스트 | +0300 |
' | 텍스트용 이스케이프 | '사용자 텍스트' | |
'' | (두 개의 작은따옴표) 이스케이프 텍스트 내의 작은따옴표 | 'o''clock' |
dateTime 오브젝트의 프리젠테이션은 다음과 같이 지정하는 기호에 따라 달라집니다.
y 기호를 사용하면, 조정되지 않으며 한 해의 마지막 며칠의 경우 예기치 못한 결과가 발생할 수 있습니다. 예를 들면, "2005 01 Monday" 문자열을 형식화할 경우,
dateTime 값이 ISO8601:2000 '날짜 및 시간 표현' 표준에 부합될 경우 형식화 기호 I 및 T를 사용할 수 있는지 고려해야 합니다. 이는 특히 다음과 같은 ISO8601 표준의 서브세트와 일치합니다.
이 기호는 고유한 방식으로만 사용되어야 합니다.
출력 시 논리 데이터 유형에 따라 다음 형식이 적용됩니다.
논리 MRM 데이터 유형 | 논리 ESQL 데이터 유형 | 출력 형식 |
---|---|---|
xsd:dateTime | TIMESTAMP 또는 GMTTIMESTAMP | yyyy-MM-dd'T'HH:mm:ss.SSSZZZ |
xsd:date | DATE | yyyy-MM-dd |
xsd:gYear | INTERVAL | yyyy |
xsd:gYearMonth | INTERVAL | yyyy-MM |
xsd:gMonth | INTERVAL | --MM |
xsd:gmonthDay | INTERVAL | --MM-dd |
xsd:gDay | INTERVAL | ---dd |
xsd:time | TIME / GMTTIME | 'T'HH:mm:ss.SSSZZZ |
문자열로 dateTime이 포함된 논리 유형 xsd:dateTime 또는 xsd:time의 요소나 속성은 Z 문자 또는 시간대 +00:00을 사용하여 UTC(Consolidated Universal Time)를 지정할 수 있습니다. 입력 시 MRM 구문 분석기가 해당 요소 및 속성의 UTC 형식을 기억합니다. 출력 시 요소 또는 속성의 dateTime 형식 등록 정보를 사용하여 Z 또는 +00:00의 표시 여부를 지정할 수 있습니다. 또는 출력에서 입력 UTC 형식 사용 메시지 세트 등록 정보를 점검하여 입력 UTC 형식을 보존할 수 있습니다. 이 등록 정보가 점검되면 UTC 형식이 출력 메시지에 보존되고 dateTime 형식 등록 정보가 의미하는 내용을 대체합니다.
다음 표에서는 dateTime 형식의 몇 가지 예를 보여줍니다.
형식 패턴 | 결과 |
---|---|
"yyyy.MM.dd'at'HH:mm:ss ZZZ" | 1996.07.10 at 15:08:56 -05:00 |
EEE, MMM d, "yy" | Wed, July 10, '96 |
"h:mm a" | 8:08 PM |
"hh 'o''clock' a, ZZZZ" | 09 o'clock AM, GMT+09:00 |
"K:mm a, ZZZ" | 9:34 AM, -05:00 |
"yyyy.MMMMM.dd hh:mm aaa" | 1996.July.10 12:08 PM |