틀:날짜
그레고리력 날짜를 입력 받아서 지정한 형식으로 출력하는 틀입니다. 이 틀은 첫째 매개변수로 날짜를, 둘째 매개변수로 출력될 형식을, 셋째 매개변수로 링크 생성 여부를 입력받습니다.
사용법[원본 편집]
간단한 사용법[원본 편집]
다음과 같이 쓰면 문서에 지정한 연월일이 표시됩니다. (예:2000년 1월 23일)
입력 | {{날짜|2000-01-23}}
|
---|---|
결과 | 2000년 1월 23일 |
연월일에 링크를 걸 수 있습니다.
입력 | {{날짜|2000-01-23|링크}}
|
---|---|
결과 | 2000년 1월 23일 |
날짜 매개변수 없이 풀어 쓰면 자동으로 현재 날짜가 입력됩니다.
입력 | {{풀기:날짜}}
|
---|---|
결과 | 2024년 12월 22일 |
매개변수 사용[원본 편집]
이 틀에서 사용하는 매개변수는 다음과 같습니다.
{{날짜 | (날짜 입력) | (출력 형식) | (링크 여부)}}
|
- 첫째 매개변수로는 날짜를 입력합니다. 필수 사항. 날짜 입력 형식과 범위 문단 참고.
- 둘째 매개변수로 출력 형식을 지정합니다. 생략 가능. 출력 형식 지정 문단 참고.
- 셋째 매개변수에
링크
를 넣으면 출력되는 날짜에 링크가 걸립니다. 둘째 매개변수에서 출력 형식을 생략할 경우 둘째에링크
를 넣어도 됩니다. 날짜에 링크 생성 문단 참고.
날짜 입력 형식과 범위[원본 편집]
날짜 입력 형식[원본 편집]
기본 입력 형식은 YYYY-MM-DD
형식(연도 4자리-월 2자리-일 2자리)입니다. 입력 가능한 모든 형식은 다음 표와 같습니다. 인식하지 못하는 형식으로 입력할 경우 링크나 출력 형식이 적용되지 않고 입력한 그대로 출력됩니다.
입력 형식 | 예시 | 비고 |
---|---|---|
YYYY-MM-DD |
2000-01-23 | 권장. 인식에 드는 서버 부하가 가장 작음. |
YYYY-MM |
2000-01 | 이 형식으로 입력하면 출력시 일자가 생략됨. |
YYYY |
2000 | 이 형식으로 입력하면 출력시 월, 일이 생략됨. |
YYYY년 M월 D일 |
2000년 1월 23일 | 인식에 드는 서버 부하가 큼. |
YYYY년M월D일 |
2000년1월23일 | |
YYYY년 M월 |
2000년 1월 | 인식에 드는 서버 부하가 큼. 출력시 일자가 생략됨. |
YYYY년M월 |
2000년1월 | |
YYYY년 |
2000년 | 출력시 월, 일이 생략됨. |
YYYY. M. D. |
2000. 1. 23. | 인식에 드는 서버 부하가 큼. 맨 끝의 점까지 입력해야 인식함. |
YYYY.M.D. |
2000.1.23. | |
YYYY. M. |
2000. 1. | 인식에 드는 서버 부하가 큼. 맨 끝의 점까지 입력해야 인식함. 출력시 일자가 생략됨. |
YYYY.M. |
2000.1. | |
YYYY. |
2000. | 출력시 월, 일이 생략됨. |
※위 형식에서 MM
을 M
으로, DD
를 D
로 바꾸어 쓸 수 있습니다. 그 반대도 됩니다. 단, MM
과 D
조합이나 M
과 DD
조합은 쓸 수 없습니다.
날짜 입력 범위[원본 편집]
입력할 수 있는 날짜 범위는 1000년 1월 1일부터 9999년 12월 31일까지입니다. 기원전 1년~ 기원후 999년 범위도 입력 및 출력이 가능하긴 하나 제한점이 있습니다(기술적 내용 문단 참조).
다음 날짜를 입력하면 링크나 출력 형식이 적용되지 않고 입력한 그대로 출력됩니다.
- 윤년이 아닌 해의 2월 29일.
- 과거 율리우스력으로 윤년이었으나 현대 그레고리력으로 윤년이 아닌 해의 2월 29일(예:1500년 2월 29일).
- 그 달에 없는 일자(예:4월 31일).
출력 형식 지정[원본 편집]
출력 형식으로 지정할 수 있는 값은 다음과 같습니다.
지정 값 | 출력 | 비고 |
---|---|---|
연월일 형식 출력 | ||
YYYY년 M월 D일 | (값 미지정) 일자를 입력한 경우. | |
YYYY년 M월 | (값 미지정) 일자를 입력하지 않은 경우. | |
YYYY년 | (값 미지정) 월을 입력하지 않은 경우. | |
연월 | YYYY년 M월 | 월을 입력한 경우. |
YYYY년 | 월을 입력하지 않은 경우. | |
월일 | M월 D일 | 일자를 입력한 경우. |
M월 | 일자를 입력하지 않은 경우. | |
월을 입력하지 않은 경우(출력 없음). | ||
연 | YYYY년 | |
월 | M월 | 월을 입력한 경우. |
월을 입력하지 않은 경우(출력 없음). | ||
일 | D일 | 일자를 입력한 경우. |
일자를 입력하지 않은 경우(출력 없음). | ||
점 형식 출력 | ||
점 | YYYY. M. D. | 일자를 입력한 경우. |
YYYY. M. | 일자를 입력하지 않은 경우. | |
YYYY. | 월을 입력하지 않은 경우. | |
점연월 | YYYY. M. | 월을 입력한 경우. |
YYYY. | 월을 입력하지 않은 경우. | |
점월일 | M. D. | 일자를 입력한 경우. |
M. | 일자를 입력하지 않은 경우. | |
월을 입력하지 않은 경우(출력 없음). | ||
점연 | YYYY. | |
점월 | M. | 월을 입력한 경우. |
월을 입력하지 않은 경우(출력 없음). | ||
점일 | D. | 일자를 입력한 경우. |
일자를 입력하지 않은 경우(출력 없음). | ||
ISO 8601 형식 출력 | ||
iso | YYYY-MM-DD | 일자를 입력한 경우. |
YYYY-MM | 일자를 입력하지 않은 경우. | |
YYYY | 월을 입력하지 않은 경우. | |
iso연월 | YYYY-MM | 월을 입력한 경우. |
YYYY | 월을 입력하지 않은 경우. | |
iso연 | YYYY |
※'연' 대신 '년'을 넣거나 'iso' 대신 'ISO'를 넣어도 올바르게 동작합니다.
날짜에 링크 생성[원본 편집]
셋째 매개변수에 링크
문자열을 넣으면 각 연월일에 링크가 생성됩니다. 출력 형식을 생략할 경우 둘째 매개변수에 문자열을 넣어도 동작합니다. 생성되는 링크는 다음과 같습니다.
- 연도에는 [[YYYY년]]
- 월에는 [[YYYY년 M월]] (단, 연도가 생략된 출력에서는 [[M월]])
- 일에는 [[M월 D일]]
사용 예[원본 편집]
날짜만 넣으면 기본값으로 'YYYY년 M월 D일' 형식으로 출력됩니다. 단, 월이나 일자를 입력하지 않으면 각각 'YYYY년' 또는 'YYYY년 M월' 형식으로 출력됩니다.
입력 | 결과 |
---|---|
{{날짜|2000-01-23}} |
2000년 1월 23일 |
{{날짜|2000-01}} |
2000년 1월 |
{{날짜|2000}} |
2000년 |
날짜 다음 매개변수로 출력 형식을 지정하고 특정 요소를 생략할 수 있습니다.
입력 | 결과 |
---|---|
{{날짜|2000-01-23|연월}} |
2000년 1월 |
{{날짜|2000-01-23|일}} |
23일 |
{{날짜|2000-01-23|점}} |
2000. 1. 23. |
{{날짜|2000-01-23|점월일}} |
1. 23. |
{{날짜|2000-01-23|iso}} |
2000-01-23 |
{{날짜|2000-01-23|iso연}} |
2000 |
월이나 일자를 입력하지 않으면 출력에서 지정해도 생략됩니다.
입력 | 결과 |
---|---|
{{날짜|2000-01}} |
2000년 1월 |
{{날짜|2000-01|월일}} |
1월 |
{{날짜|2000-01|일}} |
|
{{날짜|2000|연월}} |
2000년 |
{{날짜|2000|월일}} |
날짜 다음, 또는 출력 형식 다음 매개변수로 '링크'를 넣으면 링크가 생깁니다.
입력 | 결과 |
---|---|
{{날짜|2000-01-23|링크}} |
2000년 1월 23일 |
{{날짜|2000-01-23|연|링크}} |
2000년 |
{{날짜|2000-01-23|점연월|링크}} |
2000. 1. |
{{날짜|2000-01-23|iso|링크}} |
2000-01-23 |
월일 또는 월 형식 출력에서는 월 링크에 연도가 들어가지 않습니다.
입력 | 결과 |
---|---|
{{날짜|2000-01-23|월일|링크}} |
1월 23일 |
{{날짜|2000-01-23|점월|링크}} |
1. |
한글로 쓴 날짜, 연월일을 점으로 쓴 날짜도 인식 가능합니다. 그러나 인식에 소모되는 서버 부하가 YYYY-MM-DD 형식에 비해 조금 더 크므로 사용을 권장하지는 않습니다.
이 형식은 연월일 사이를 모두 붙이거나 모두 뗀 경우만 인식합니다. 점 형식은 맨 끝의 점까지 써야 합니다. 인식하지 못하는 경우 링크나 출력 형식이 적용되지 않고 입력한 그대로 출력됩니다.
입력 | 결과 |
---|---|
{{날짜|2000년1월23일|링크}} |
2000년 1월 23일 |
{{날짜|2000. 01. 23.|링크}} |
2000년 1월 23일 |
{{날짜|2000년 01월|점|링크}} |
2000. 1. |
{{날짜|2000.1.|점|링크}} |
2000. 1. |
{{날짜|2000년|iso|링크}} |
2000 |
입력 | 결과 |
---|---|
{{날짜|2000년 1월23일|링크}} |
2000년 1월23일 |
{{날짜|2000년1월01일|링크}} |
2000년1월01일 |
{{날짜|2000. 1. 23|iso}} |
2000. 1. 23 |
틀을 풀어서 쓸 수도 있습니다.
입력 | 결과 |
---|---|
{{풀기:날짜|2000-01-23}} |
2000년 1월 23일 실제 입력되는 코드: 2000년 1월 23일
|
{{풀기:날짜|2000-01-23|링크}} |
2000년 1월 23일 실제 입력되는 코드: [[2000년]] [[2000년 1월|1월]] [[1월 23일|23일]]
|
{{풀기:날짜|2000-01-23|월|링크}} |
1월 실제 입력되는 코드: [[1월]]
|
풀어 쓰면서 날짜를 입력하지 않으면 현재 날짜가 자동으로 입력됩니다.
입력 | 결과 |
---|---|
{{풀기:날짜}} |
2024년 12월 22일 실제 입력되는 코드: 2024년 12월 22일
|
{{풀기:날짜||점월일|링크}} |
12. 22. 실제 입력되는 코드: [[12월|12.]] [[12월 22일|22.]]
|
날짜 자동 입력은 풀어 쓸 때에만 적용됩니다. 끼워넣으면서 날짜를 입력하지 않으면 오류가 발생합니다.
입력 | 결과 |
---|---|
{{날짜}} |
날짜 틀 오류: 날짜 값이 입력되지 않음. |
{{날짜||링크}} |
날짜 틀 오류: 날짜 값이 입력되지 않음. |
유의 사항[원본 편집]
- 첫째 매개변수(날짜)를 입력하지 않으면 오류가 발생하고, 해당 글은 숨은 분류인 분류:날짜 매개변수 없이 날짜 틀이 쓰인 글에 들어갑니다. 단, 풀어 쓰면 오류 없이 현재 날짜를 출력합니다.
- 인식할 수 없는 날짜 입력 형식은 문자열 그대로 출력됩니다. 링크는 생성되지 않습니다.
기술적 내용[원본 편집]
이 문단의 내용은 이 틀을 고치려는 사람과 이 틀을 다른 틀에서 메타 틀로 쓰려는 사람을 위한 것입니다.
- 기원전 1년(=0년)~ 기원후 999년 범위의 날짜를 입력하려면 연도 앞에 0을 붙여서
0100
같은 식으로 입력합니다. 단, 출력에서도 앞의 0이 표시되며, 연도·월 링크도 그렇게 되는 문제점이 있습니다.
- 틀 수정시에는 연도에 따라 #time 함수의 동작이 달라짐에 주의해야 합니다. 0년~99년, 100년~110년, 111년~1752년 등의 범위는 1753년 이후와 다르게 처리되는 경우가 있습니다. ParserFunctions(영어) 참고.
- 이전에 사용하던 방식인, 매개변수 '링크'의 값을 지정하는 방법도 사용 가능합니다. 매개변수 '링크'가 정의되고 빈 값이 아니면 링크로 출력합니다.
- 메타 틀이 많이 사용되었습니다. 이는 매개변수를 이용해 틀과 특수 함수의 중복 사용을 없애기 위함입니다. 틀의 중복 사용은 최소화하였으나 틀과 특수 함수의 확장(expansion)이 많이 일어납니다. 미디어위키에서 허용하는 최대 확장 깊이는 40단계인데 이 틀은 2011년 1월 17일 기준판에서 최대 약 10단계의 확장을 사용합니다.
- 이 틀을 메타 틀로 사용할 경우 위에서 언급한 확장 단계 문제 및 한글 날짜 입력 인식의 서버 부하를 고려해야 합니다. 이 틀은
YYYY-MM-DD
형식 입력을 받으면 가벼운 편이지만 한글 날짜 입력을 받으면 상당히 무겁습니다.
메타 틀[원본 편집]
이 틀에서 사용하는 메타 틀입니다.
- {{날짜/출력}}
- {{날짜/연월일입력}}
- {{날짜/연월일입력/월}}
- {{날짜/연월일입력/일}}
주석 포함 코드[원본 편집]
아래 코드는 2011년 2월 6일 17:40 (KST) 버전에 주석을 달아 놓은 것입니다. 불필요한 서버 처리를 막기 위해 실제 코드에는 주석을 넣지 않았습니다. 만약 이 틀을 수정한다면 아래 코드도 같이 수정하여 추후 다른 사람이 수정하기 쉽도록 도와주세요.
{{{{{|안전풀기:}}}#if:{{{1|}}}<noinclude><!--매개변수 1 미지정이거나 비었으면 풀어쓰기 검사로...--></noinclude> |{{{{{|안전풀기:}}}#iferror:{{{{{|안전풀기:}}}#time:Y_m_d|{{{1}}} 12:00}}<noinclude><!--권장 입력 형식(YYYY-MM-DD 따위)일 경우 분기를 줄이기 위한 구문. #time에 12:00 붙인 것은 0년~2359년 사이 각 100년 단위별 00~59년의 YYYY 또는 YYYY. 형식 검출용(#time이 해당 범위를 YYYY가 아닌 hhmm으로 처리함).--></noinclude> |{{{{{|안전풀기:}}}#switch:x{{{{{|안전풀기:}}}padleft:|5|{{{1}}}}}<noinclude><!--연도 문자 검출 위한 스위치--></noinclude> |x{{{1}}}={{{{{|안전풀기:}}}#switch:x{{{1}}}<noinclude><!--0000~9999년 범위의 YYYY년 및 hhmm 범위의 YYYY. 형식 검출--></noinclude> |x{{{{{|안전풀기:}}}padleft:|4|{{{1}}}}}년 |x{{{{{|안전풀기:}}}padleft:|4|{{{1}}}}}.={{{{{|안전풀기:}}}날짜/출력|1={{{1}}}|2={{{2|}}}|3={{{3|}}}|링크={{{링크|}}}|연월일입력={{{{{|안전풀기:}}}padleft:|4|{{{1}}}}}-01-00}} |{{{1}}} }} |x{{{{{|안전풀기:}}}padleft:|4|{{{1}}}}}년={{{{{|안전풀기:}}}날짜/연월일입력|1={{{1}}}|2={{{2|}}}|3={{{3|}}}|링크={{{링크|}}}|연도={{{{{|안전풀기:}}}padleft:|5|{{{1}}}}}|월수={{{{{|안전풀기:}}}날짜/연월일입력/월|1={{{1}}}|연도={{{{{|안전풀기:}}}padleft:|5|{{{1}}}}}|월=월}}|월=월|일=일}}<noinclude><!--연도 문자가 '년'이고 월이나 일이 있음.--></noinclude> |x{{{{{|안전풀기:}}}padleft:|4|{{{1}}}}}.={{{{{|안전풀기:}}}날짜/연월일입력|1={{{1}}}|2={{{2|}}}|3={{{3|}}}|링크={{{링크|}}}|연도={{{{{|안전풀기:}}}padleft:|5|{{{1}}}}}|월수={{{{{|안전풀기:}}}날짜/연월일입력/월|1={{{1}}}|연도={{{{{|안전풀기:}}}padleft:|5|{{{1}}}}}|월=.}}|월=.|일=.}}<noinclude><!--연도 문자가 '.'이고 월이나 일이 있음.--></noinclude> |{{{{{|안전풀기:}}}#ifeq:x{{{1}}}|x{{{{{|안전풀기:}}}padleft:|4|{{{1}}}}}<noinclude><!--hhmm 범위의 YYYY 형식 검출--></noinclude> |{{{{{|안전풀기:}}}날짜/출력|1={{{1}}}|2={{{2|}}}|3={{{3|}}}|링크={{{링크|}}}|연월일입력={{{1}}}-01-00}} |{{{1}}} }} }} |{{{{{|안전풀기:}}}날짜/출력|1={{{1}}}|2={{{2|}}}|3={{{3|}}}|링크={{{링크|}}}}}<noinclude><!--권장 입력 형식일 경우 #iferror에서 여기로 바로 넘어옴.--></noinclude> }} |{{{{{|안전풀기:}}}#if:{{{{{|풀기:}}}이름:0|x}}<noinclude><!--(풀어쓰기 검사) 매개변수 1 비었을 경우 끼워넣었으면 오류 출력하고 자동분류, 풀어썼으면 현재 날짜 풀기.--></noinclude> |<includeonly>{{오류|날짜 틀 오류: 날짜 값이 입력되지 않음.}}[[분류:날짜 매개변수 없이 날짜 틀이 쓰인 글|{{문서이름}}]]</includeonly> |{{{{{|안전풀기:}}}날짜/출력|{{{{{|안전풀기:}}}#timel:Y-m-d|now}}|2={{{2|}}}|3={{{3|}}}|링크={{{링크|}}}}} }} }}<noinclude> {{틀 설명문서}} </noinclude>