C#에서 "D" 형식 지정자는 날짜와 시간을 긴 형태(long date)로 표현하는 표준 날짜 및 시간 형식 문자열입니다. 이 지정자는 내부적으로 사용자 지정(custom) 형식 문자열에 매핑되며, 그 출력 결과는 현재 문화권(culture) 설정에 따라 달라집니다.
형식 문자열은 해당 문화권의 DateTimeFormatInfo.LongDatePattern 속성 값으로 정의됩니다. 따라서 동일한 코드라도 실행 환경의 문화권이 다르면 서로 다른 형태로 날짜가 표시됩니다.
기본 사용자 지정 형식 문자열
예를 들어 en-US(영어-미국) 문화권에서 "D" 지정자는 다음과 같은 사용자 지정 형식 문자열에 해당합니다.
dddd, dd MMMM yyyy
이 패턴은 요일 전체 이름(dddd), 일(day), 월의 전체 이름(MMMM), 연도(yyyy) 순서로 날짜를 출력합니다.
예제 코드
using System;
using System.Globalization;
class Demo {
static void Main() {
DateTime myDate = new DateTime(2018, 9, 20);
Console.WriteLine(myDate.ToString("D", CultureInfo.CreateSpecificCulture("en-US")));
}
}실행 결과
Thursday, September 20, 2018
참고 사항
CultureInfo.CreateSpecificCulture("en-US")를 사용하면 특정 문화권을 명시적으로 지정할 수 있으며, 이 인수를 생략하면 시스템의 현재 문화권 설정이 자동으로 적용됩니다. 참고로 한국어(ko-KR) 문화권에서는 "2018년 9월 20일 목요일"과 같은 형식으로 출력됩니다.