사용자 지정 DateTime 형식 문자열
사용자 지정 DateTime 형식 지정자를 사용하여 사용자 지정 DateTime 형식 문자열을 만드는 방법으로 DateTime 개체의 형식이 지정되는 방식을 보다 강력하게 제어할 수 있습니다. 하나 이상의 사용자 지정 형식 지정자를 조합하여 원하는 출력을 제공하는 DateTime 형식 지정 패턴을 생성할 수 있습니다. 실제로 대부분의 표준 DateTime 형식 지정자는 현재 적용이 가능한 DateTimeFormatInfo 클래스에 지정된 형식 지정 패턴의 별칭입니다.
다음 표에서는 사용자 지정 형식 지정자와 해당 지정자가 생성하는 결과를 보여 줍니다. 이 형식 지정자의 출력은 현재 culture와 제어판에 있는 국가별 옵션 설정의 영향을 받습니다
형식 지정
설명
d
해당 월의 현재 날짜를 1에서 31까지의 숫자로 표시합니다. 날짜가 한 자리(1-9)이면 한 자리 수로 표시합니다.
다른 사용자 지정 형식 문자열 없이 'd' 형식 지정자만 사용되면 표준 간단한 날짜 패턴 형식 지정자로 해석됩니다. 'd' 형식 지정자가 다른 사용자 지정 형식 지정자나 '%' 문자와 함께 전달되면 사용자 지정 형식 지정자로 해석됩니다.
dd
해당 월의 현재 날짜를 1에서 31까지의 숫자로 표시합니다. 날짜가 한 자리 수(1-9)이면, 숫자 앞에 0이 옵니다(01-09).
ddd
지정된 DateTime의 날짜를 약식 이름으로 표시합니다. 유효한 특정 형식 공급자(예상 속성으로 IFormatProvider를 구현하는 null이 아닌 개체)가 제공되지 않으면 DateTimeFormat의 AbbreviatedDayNames 속성 및 현재 스레드와 관련된 현재 culture가 사용됩니다. 그렇지 않으면 지정된 형식 공급자의 AbbreviatedDayNames 속성이 사용됩니다.
dddd (및 추가 "d" 문자 사용)
지정된 DateTime의 날짜를 전체 이름으로 표시합니다. 유효한 특정 형식 공급자(예상 속성으로 IFormatProvider를 구현하는 null이 아닌 개체)가 제공되지 않으면 DateTimeFormat의 DayNames 속성 및 현재 스레드와 관련된 현재 culture가 사용됩니다. 그렇지 않으면 지정된 형식 공급자의 DayNames 속성이 사용됩니다.
f
초의 최대 유효 자릿수를 표시합니다.
다른 사용자 지정 형식 문자열 없이 'f' 형식 지정자만 사용되면 전체(자세한 날짜 + 간단한 시간) 형식 지정자로 해석됩니다. 'f' 형식 지정자가 다른 사용자 지정 형식 지정자나 '%' 문자와 함께 전달되면 사용자 지정 형식 지정자로 해석됩니다.
System.DateTime.ParseExact 메서드로 구문 분석할 경우, 사용하는 'f' 형식 지정자의 수는 구문 분석할 시간(초)의 최대 유효 자릿수를 나타냅니다.
ff
초의 최대 유효 자릿수 2개를 표시합니다.
fff
초의 최대 유효 자릿수 3개를 표시합니다.
ffff
초의 최대 유효 자릿수 4개를 표시합니다.
fffff
초의 최대 유효 자릿수 5개를 표시합니다.
ffffff
초의 최대 유효 자릿수 6개를 표시합니다.
fffffff
초의 최대 유효 자릿수 7개를 표시합니다.
F
초의 최대 유효 자릿수를 표시합니다. 숫자가 0이면 아무것도 표시되지 않습니다.
System.DateTime.ParseExact(System.String,System.String,System.IFormatProvider) 메서드로 구문 분석할 경우, 사용하는 'F' 형식 지정자의 수는 구문 분석할 시간(초)의 최대 유효 자릿수를 나타냅니다.
FF
초의 최대 유효 자릿수 2개를 표시합니다. 그러나 뒤에 0이 오거나 두 숫자가 0이면 표시되지 않습니다.
FFF
초의 최대 유효 자릿수 3개를 표시합니다. 그러나 뒤에 0이 오거나 세 숫자가 0이면 표시되지 않습니다.
FFFF
초의 최대 유효 자릿수 4개를 표시합니다. 그러나 뒤에 0이 오거나 네 숫자가 0이면 표시되지 않습니다.
FFFFF
초의 최대 유효 자릿수 5개를 표시합니다. 그러나 뒤에 0이 오거나 다섯 숫자가 0이면 표시되지 않습니다.
FFFFFF
초의 최대 유효 자릿수 6개를 표시합니다. 그러나 뒤에 0이 오거나 여섯 숫자가 0이면 표시되지 않습니다.
FFFFFFF
초의 최대 유효 자릿수 7개를 표시합니다. 그러나 뒤에 0이 오거나 일곱 숫자가 0이면 표시되지 않습니다.
g 또는 gg (및 추가 "g" 문자 사용)
지정된 DateTime의 연대(예: A.D)를 표시합니다. 유효한 특정 형식 공급자(예상 속성으로 IFormatProvider를 구현하는 null이 아닌 개체)가 제공되지 않으면 연대는 DateTimeFormat과 관련된 달력 및 현재 스레드와 관련된 현재 culture를 통해 결정됩니다.
다른 사용자 지정 형식 문자열 없이 'g' 형식 지정자만 사용되면 표준 일반 형식 지정자로 해석됩니다. 'g' 형식 지정자가 다른 사용자 지정 형식 지정자나 '%' 문자와 함께 전달되면 사용자 지정 형식 지정자로 해석됩니다.
h
지정된 DateTime의 시간을 1-12 범위에서 표시합니다. 이때 시간은 자정(12로 표시) 또는 정오(이것도 12로 표시) 이후 경과한 총 시간을 나타냅니다. 이 형식만 사용하면 정오 이전과 이후의 같은 시간을 구별할 수 없습니다. 시간이 한 자리(1-9)이면 한 자리 수로 표시합니다. 시간을 표시할 때는 반올림하지 않습니다. 예를 들어, DateTime이 5:43이면 5를 반환합니다.
hh, hh (및 추가 "h" 문자 사용)
지정된 DateTime의 시간을 1-12 범위에서 표시합니다. 이때 시간은 자정(12로 표시) 또는 정오(이것도 12로 표시) 이후 경과한 총 시간을 나타냅니다. 이 형식만 사용하면 정오 이전과 이후의 같은 시간을 구별할 수 없습니다. 시간이 한 자리 수(1-9)이면 앞에 0이 옵니다(01-09).
H
지정된 DateTime의 시간을 0-23 범위에서 표시합니다. 이때 시간은 자정(0으로 표시) 이후 경과한 총 시간을 나타냅니다. 시간이 한 자리(0-9)이면 한 자리 수로 표시합니다.
HH, HH (및 추가 "H" 문자 사용)
지정된 DateTime의 시간을 0-23 범위에서 표시합니다. 이때 시간은 자정(0으로 표시) 이후 경과한 총 시간을 나타냅니다. 시간이 한 자리 수(0-9)이면 앞에 0이 옵니다(01-09).
m
지정된 DateTime의 분을 0-59 범위에서 표시합니다. 이때 분은 마지막 시간 이후 경과한 총 분을 나타냅니다. 분이 한 자리(0-9)이면 한자리 수로 표시합니다.
다른 사용자 지정 형식 문자열 없이 'm' 형식 지정자만 사용되면 표준 월 일 패턴 형식 지정자로 해석됩니다. 'm' 형식 지정자가 다른 사용자 지정 형식 지정자나 '%' 문자와 함께 전달되면 사용자 지정 형식 지정자로 해석됩니다.
mm, mm (및 추가 "m" 문자 사용)
지정된 DateTime의 분을 0-59 범위에서 표시합니다. 이때 분은 마지막 시간 이후 경과한 총 분을 나타냅니다. 분이 한 자리(1-9)이면 분 앞에 0이 옵니다(01-09).
M
월을 1에서 12 사이의 숫자로 표시합니다. 해당 월이 한 자리(1-9)이면 한 자리 수로 표시합니다.
다른 사용자 지정 형식 문자열 없이 'M' 형식 지정자만 사용되면 표준 월 일 패턴 형식 지정자로 해석됩니다. 'M' 형식 지정자가 다른 사용자 지정 형식 지정자와 함께 전달되면 사용자 지정 형식 지정자로 해석됩니다.
MM
월을 1에서 12 사이의 숫자로 표시합니다. 해당 월이 한 자리(1-9)이면 월 앞에 0이 옵니다(01-09).
MMM
지정된 DateTime의 월을 약식 이름으로 표시합니다. 유효한 특정 형식 공급자(예상 속성으로 IFormatProvider를 구현하는 null이 아닌 개체)가 제공되지 않으면 DateTimeFormat의 AbbreviatedMonthNames 속성 및 현재 스레드와 관련된 현재 culture가 사용됩니다. 그렇지 않으면 지정된 형식 공급자의 AbbreviatedMonthNames 속성이 사용됩니다.
MMMM
지정된 DateTime의 월을 전체 이름으로 표시합니다. 유효한 특정 형식 공급자(예상 속성으로 IFormatProvider를 구현하는 null이 아닌 개체)가 제공되지 않으면 DateTimeFormat의 MonthNames 속성 및 현재 스레드와 관련된 현재 culture가 사용됩니다. 그렇지 않으면 지정된 형식 공급자의 MonthNames 속성이 사용됩니다.
s
지정된 DateTime의 초를 0-59 범위에서 표시합니다. 이때 초는 마지막 분 이후 경과한 전체 초를 나타냅니다. 초가 한 자리(0-9)이면 한자리 수로만 표시합니다.
다른 사용자 지정 형식 문자열 없이 's' 형식 지정자만 사용되면 정렬 가능한 표준 날짜/시간 패턴 형식 지정자로 해석됩니다. 's' 형식 지정자가 다른 사용자 지정 형식 지정자나 '%' 문자와 함께 전달되면 사용자 지정 형식 지정자로 해석됩니다.
ss, ss (및 추가 "s" 문자 사용)
지정된 DateTime의 초를 0-59 범위에서 표시합니다. 이때 초는 마지막 분 이후 경과한 전체 초를 나타냅니다. 초가 한 자리(1-9)이면 초 앞에 0이 옵니다(01-09).
t
지정된 DateTime의 A.M./P.M. 지정자를 첫 문자만 표시합니다. 유효한 특정 형식 공급자(예상 속성으로 IFormatProvider를 구현하는 null이 아닌 개체)가 제공되지 않으면, DateTimeFormat의 AMDesignator 또는 PMDesignator 속성및 현재 스레드와 관련된 현재 culture가 사용됩니다. 그렇지 않으면 지정된 IFormatProvider의 AMDesignator 또는 PMDesignator 속성이 사용됩니다. 지정된 DateTime의 총 경과 시간이 12 이하이면 AMDesignator가 사용됩니다. 그렇지 않으면 PMDesignator가 사용됩니다.
다른 사용자 지정 형식 문자열 없이 't' 형식 지정자만 사용되면 표준 자세한 시간 패턴 형식 지정자로 해석됩니다. 't' 형식 지정자가 다른 사용자 지정 형식 지정자나 '%' 문자와 함께 전달되면 사용자 지정 형식 지정자로 해석됩니다.
tt, tt (및 추가 "t" 문자 사용)
지정된 DateTime의 A.M./P.M. 지정자를 표시합니다. 유효한 특정 형식 공급자(예상 속성으로 IFormatProvider를 구현하는 null이 아닌 개체)가 제공되지 않으면, DateTimeFormat의 AMDesignator 또는 PMDesignator 속성 및 현재 스레드와 관련된 현재 culture가 사용됩니다. 그렇지 않으면 지정된 IFormatProvider의 AMDesignator 또는 PMDesignator 속성이 사용됩니다. 지정된 DateTime의 총 경과 시간이 12 이하이면 AMDesignator가 사용됩니다. 그렇지 않으면 PMDesignator가 사용됩니다.
y
지정된 DateTime의 연도를 최대 두 자리 수로 표시합니다. 연도의 처음 두 자리는 생략합니다. 연도가 한 자리(1-9)이면 한 자리 수로 표시합니다.
다른 사용자 지정 형식 문자열 없이 'y' 형식 지정자만 사용되면 표준 간단한 날짜 패턴 형식 지정자로 해석됩니다. 'y' 형식 지정자가 다른 사용자 지정 형식 지정자나 '%' 문자와 함께 전달되면 사용자 지정 형식 지정자로 해석됩니다.
yy
지정된 DateTime의 연도를 최대 두 자리 수로 표시합니다. 연도의 처음 두 자리는 생략합니다. 연도가 한 자리(1-9)이면 연도 앞에 0이 옵니다(01-09).
yyyy
지정된 DateTime의 연도를 세기와 함께 표시합니다. 연도의 길이가 4자리보다 작으면, 앞에 필요한 만큼 0을 붙여서 연도를 4자리 길이로 표시합니다.
z
시스템의 현재 표준 시간대에 대한 표준 시간대 오프셋을 시간으로만 표시합니다. 오프셋은 항상 그리니치 표준시보다 앞선 시간(+) 또는 그리니치 표준시보다 늦은 시간(-)을 나타내는 선행 기호(0은 "+0"으로 표시)와 함께 표시됩니다. 이 값의 범위는 –12에서 +13까지입니다. 오프셋이 한 자리(0-9)이면 적절한 선행 기호를 붙여 한 자리 수로 표시합니다. 표준 시간대 설정은 +X 또는 –X로 지정되며, X는 GMT와 차이가 나는 시간을 나타냅니다. 표시된 오프셋은 일광 절약 시간제의 영향을 받습니다.
zz
시스템의 현재 표준 시간대에 대한 표준 시간대 오프셋을 시간으로만 표시합니다. 오프셋은 항상 그리니치 표준시보다 앞선 시간(+) 또는 그리니치 표준시보다 늦은 시간(-)을 나타내는 선행 또는 후행 기호(0은 "+00"으로 표시)와 함께 표시됩니다. 이 값의 범위는 –12에서 +13까지입니다. 오프셋이 한 자리(0-9)이면 오프셋 앞에 적절한 선행 기호와 0이 붙습니다(01-09). 표준 시간대 설정은 +X 또는 –X로 지정되며, X는 GMT와 차이가 나는 시간을 나타냅니다. 표시된 오프셋은 일광 절약 시간제의 영향을 받습니다.
zzz, zzz (및 추가 "z" 문자 사용)
시스템의 현재 표준 시간대에 대한 표준 시간대 오프셋을 시간과 분으로 표시합니다. 오프셋은 항상 그리니치 표준시보다 앞선 시간(+) 또는 그리니치 표준시보다 늦은 시간(-)을 나타내는 선행 또는 후행 기호(0은 "+00:00"으로 표시)와 함께 표시됩니다. 이 값의 범위는 –12:00에서 +13:00까지입니다. 오프셋이 한 자리(0-9)이면 오프셋 앞에 적절한 선행 기호와 0이 붙습니다(01-09). 표준 시간대 설정은 +X 또는 –X로 지정되며, X는 GMT와 차이가 나는 시간을 나타냅니다. 표시된 오프셋은 일광 절약 시간제의 영향을 받습니다.
:
시간 구분 기호입니다.
/
날짜 구분 기호입니다.
"
따옴표로 묶은 문자열입니다. 문자열의 리터럴 값을 앞에 이스케이프 문자(/)가 오는 두 따옴표 사이에 표시합니다.
'
따옴표로 묶은 문자열입니다. 문자열의 리터럴 값을 두 개의 " ' " 문자 사이에 표시합니다.
%c
여기서 c는 표준 형식 지정자와 사용자 지정 형식 지정자를 모두 나타내며, 형식 지정자와 연관된 사용자 지정 형식 패턴을 표시합니다.
단일 문자 형태의 형식 지정자만 사용하면 표준 형식 지정자로 해석됩니다. 둘 이상의 문자로 구성되는 형식 지정자만 사용자 지정 형식 지정자로 해석됩니다. 표준 형식 지정자와 사용자 지정 형식 지정자 둘 다로 정의된 지정자의 사용자 지정 형식을 표시하려면 지정자 앞에 % 기호를 붙입니다.
\c
여기서 c는 모든 문자가 가능하며, 이스케이프 문자는 다음 문자를 리터럴로 표시합니다. 이 컨텍스트에서는 이스케이프 문자를 사용하여 이스케이프 시퀀스(예: 새 줄에 해당하는 "\n")를 만들 수 없습니다.
기타 문자
다른 문자는 결과 문자열에 직접 리터럴로 쓰여집니다.
사용자 지정 패턴을 DateTime.ToString에 전달할 때, 이 패턴은 최소 2문자여야 합니다. "d"만 전달할 경우, 모든 한 자리 형식 지정자는 표준으로 해석되므로 공용 언어 런타임에서 이것을 표준 형식 지정자로 해석합니다. "h" 하나만 전달하면 표준 "h" 형식 지정자가 없기 때문에 예외가 throw됩니다. 단일 사용자 정의 형식만 사용하여 형식을 지정하려면 해당 지정자의 앞과 뒤에 공백을 넣습니다. 예를 들어, 형식 문자열 "h "는 사용자 정의 형식 문자열로 해석됩니다.
다음 예제에서는 DateTime에서 사용자 지정의 형식 지정 문자열을 만드는 방법을 설명합니다. 이 예제에서는 현재 culture가 미국 영어(en-US)라고 가정합니다.
예제
DateTime MyDate = new DateTime(2000, 1, 1, 0, 0, 0);
String MyString = MyDate.ToString("dddd - d - MMMM");
// In the U.S. English culture, MyString has the value:
// "Saturday - 1 - January".
MyString = MyDate.ToString("yyyy gg");
// In the U.S. English culture, MyString has the value: "2000 A.D.".
미국형식 (금요일 , 17 , 2007 ) Culture="en-US"
<%# Eval("makedate", "{0:dddd , d , yyyy }") %>
페이지에 Culture="en-US" 를 설정하면 Friday , 17 , 2007
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.ko/dv_fxfund/html/98b374e3-0cc2-4c78-ab44-efb671d71984.htm
'C#.NET' 카테고리의 다른 글
[DATAGRID & DATASET ]DATASET 을 이용한 데이터 그리드 사용법 (0) | 2010.01.12 |
---|---|
[ Panel Move & Point ]포스트 잇 처럼 만들기 (0) | 2010.01.12 |
[MSDN]Microsoft .NET Framework 버전 2.0새로운 기능 (0) | 2010.01.12 |
[정규식] Visual Basic에서 HTML 문자열의 텍스트 제거 (0) | 2010.01.12 |
[ ListBox ] 리스트박스 아이템 순서 바꾸기 (1) | 2010.01.12 |
[설치,배포]설치 후에 프로그램을 자동으로 실행하는 방법 (0) | 2010.01.11 |
[ DataTable ] 데이타 테이블로 데이타리스트, 그리드뷰 채우기 (0) | 2010.01.07 |
생성자의 종류 와 프로퍼티의 의미 (0) | 2010.01.05 |
제네릭 List<T> (0) | 2010.01.04 |
[MSDN]박싱(Boxing) 언박싱(UnBoxing) (0) | 2010.01.04 |