DateTime XAML 구문

일부 컨트롤(예: CalendarDatePicker)에는 DateTime 형식을 사용하는 속성이 있습니다. 일반적으로 런타임에 코드 숨김으로 이러한 컨트롤에 대해 초기 날짜 또는 시간을 지정하지만 XAML로 초기 날짜 또는 시간을 지정할 수 있습니다. WPF XAML 파서는 기본 제공 XAML 텍스트 구문을 사용하여 DateTime 값의 구문 분석을 처리합니다. 이 항목에서는 DateTime XAML 텍스트 구문의 세부 사항에 대해 설명합니다.

DateTime XAML 구문을 사용하는 경우

날짜를 항상 XAML로 설정할 필요가 없으며 이 방법이 바람직하지 않을 수도 있습니다. 예를 들어 DateTime.Now 속성을 사용하여 런타임 시 날짜를 초기화하거나 사용자 입력에 따라 코드 숨김으로 달력에 대해 모든 날짜를 조정할 수 있습니다. 그러나 컨트롤 템플릿에서 날짜를 CalendarDatePicker로 하드 코드화할 수 있는 시나리오가 있습니다. 이러한 시나리오에 DateTime XAML 구문을 사용해야 합니다.

DateTime XAML 구문이 기본 동작임

DateTime은 CLR의 기본 클래스 라이브러리에 정의되어 있는 클래스입니다. 기본 클래스 라이브러리가 나머지 CLR과 관련되는 방식으로 인해 TypeConverterAttribute를 클래스에 적용하고 형식 변환기를 사용하여 XAML에서 문자열을 처리하고 런타임 개체 모델의 DateTime으로 변환하지 못할 수 있습니다. 변환 동작을 제공하는 DateTimeConverter 클래스가 없습니다. 이 항목에서 설명하는 변환 동작은 WPF XAML 파서의 기본 동작입니다.

DateTime XAML 구문의 형식 문자열

형식 문자열을 사용하여 DateTime의 형식을 지정할 수 있습니다. 형식 문자열은 값을 생성하는 데 사용할 수 있는 텍스트 구문을 공식화합니다. 기존 WPF 컨트롤에 대한 DateTime 값은 일반적으로 DateTime의 날짜 구성 요소만 사용하고 시간 구성 요소는 사용하지 않습니다.

XAML에서 DateTime을 지정하는 경우 형식 문자열을 서로 교환해서 사용할 수 있습니다.

이 항목에 구체적으로 표시되지 않은 형식 및 형식 문자열을 사용할 수도 있습니다. 기술적으로 WPF XAML 파서에서 지정한 다음, 구문 분석되는 모든 DateTime 값에 대한 XAML은 DateTime.Parse에 대한 내부 호출을 사용하므로 DateTime.Parse에서 수락한 문자열을 XAML 입력에 사용할 수 있습니다. 자세한 내용은 DateTime.Parse를 참조하세요.

중요

DateTime XAML 구문은 기본 변환을 위한 CultureInfo로 항상 en-us를 사용합니다. XAML 특성 수준 형식 변환은 해당 컨텍스트 없이 동작하기 때문에 이는 XAML의 Language 값 또는 xml:lang 값의 영향을 받지 않습니다. 일과 월이 표시되는 순서와 같은 문화적 차이로 인해 여기에 표시된 형식 문자열을 보간하지 마세요. 여기에 표시된 형식 문자열은 다른 문화권 설정에 관계없이 XAML을 구문 분석할 때 사용되는 정확한 형식 문자열입니다.

다음 섹션에서는 몇 가지 일반적인 DateTime 형식 문자열에 대해 설명합니다.

간단한 날짜 패턴("d")

다음에서는 XAML의 DateTime에 대한 간단한 날짜 형식을 보여 줍니다.

M/d/YYYY

WPF 컨트롤에서 일반적으로 사용하는 데 필요한 모든 정보를 지정하는 가장 간단한 형식이며 실수에 의한 표준 시간대 오프셋 및 시간 구성 요소의 영향을 받지 않으므로 다른 형식에 비해 권장됩니다.

예를 들어 2010년 6월 1일 날짜를 지정하려면 다음 문자열을 사용합니다.

3/1/2010

자세한 내용은 DateTimeFormatInfo.ShortDatePattern를 참조하세요.

정렬 가능한 DateTime 패턴("s")

다음은 XAML의 정렬 가능한 DateTime 패턴을 보여 줍니다.

yyyy'-'MM'-'dd'T'HH':'mm':'ss

예를 들어 2010년 6월 1일 날짜를 지정하려면 다음 문자열을 사용합니다. 시간 구성 요소는 모두 0으로 입력됩니다.

2010-06-01T000:00:00

RFC1123 패턴("r")

RFC1123 패턴은 문화권이 고정되어 있다는 이유로 RFC1123 패턴도 사용하는 다른 날짜 생성기의 문자열 입력이 될 수 있기 때문에 유용합니다. 다음은 XAML의 RFC1123 DateTime 패턴을 보여 줍니다.

ddd, dd MMM yyyy HH':'mm':'ss 'UTC'

예를 들어 2010년 6월 1일 날짜를 지정하려면 다음 문자열을 사용합니다. 시간 구성 요소는 모두 0으로 입력됩니다.

Mon, 01 Jun 2010 00:00:00 UTC

기타 형식 및 패턴

앞에서 설명한 것처럼 XAML의 DateTimeDateTime.Parse에 대한 입력으로 허용되는 모든 문자열로 지정할 수 있습니다. 여기에는 다른 형식화된 형식(예: UniversalSortableDateTimePattern)과 특정 DateTimeFormatInfo 양식으로 형식화되지 않은 형식이 포함됩니다. 예를 들어 YYYY/mm/dd 양식은 DateTime.Parse에 대한 입력으로 허용됩니다. 이 항목에서는 작동 가능한 모든 형식에 대해 설명하려고 하지 않으며 대신 간단한 날짜 패턴을 표준 사례로 권장합니다.

참조