C#의 DateTime.ToShortDateString() 메서드는 현재 DateTime 객체가 가진 날짜 값을 해당하는 짧은 날짜(short date) 문자열로 변환하여 반환합니다. 이 메서드는 현재 스레드의 문화권(culture)에 정의된 날짜 형식을 따르기 때문에, 실행 환경에 따라 출력 결과가 달라질 수 있다는 점이 특징입니다.
구문(Syntax)
ToShortDateString() 메서드의 기본 구문은 다음과 같습니다.
public string ToShortDateString ();
매개변수는 없으며, 변환된 짧은 날짜 형식의 문자열(string)을 반환합니다.
예제 1: 기본 사용법
다음은 DateTime.ToShortDateString() 메서드를 사용하는 간단한 예제입니다.
using System;
public class Demo {
public static void Main() {
DateTime d = new DateTime(2019, 08, 11, 9, 10, 45);
Console.WriteLine("Date = {0}", d);
string str = d.ToShortDateString();
Console.WriteLine("Short date string representation = {0}", str);
}
}실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Date = 8/11/2019 9:10:45 AM Short date string representation = 8/11/2019
원래 DateTime 객체에는 시간 정보(오전 9시 10분 45초)까지 포함되어 있지만, ToShortDateString()을 적용한 결과에서는 시간 부분이 제거되고 날짜만 짧은 형식으로 출력된 것을 확인할 수 있습니다.
예제 2: 현재 문화권과 함께 확인하기
ToShortDateString()은 현재 문화권(CurrentCulture)의 날짜 형식 설정을 따릅니다. 아래 예제에서는 CultureInfo를 활용해 현재 문화권과 짧은 날짜 패턴을 함께 출력해 보겠습니다.
using System;
using System.Globalization;
public class Demo {
public static void Main() {
DateTime d = DateTime.Now;
Console.WriteLine("Date = {0}", d);
Console.WriteLine("Current culture = " + CultureInfo.CurrentCulture.Name);
var pattern = CultureInfo.CurrentCulture.DateTimeFormat;
string str = d.ToShortDateString();
Console.WriteLine("Short date string = {0}", pattern.ShortDatePattern);
Console.WriteLine("Short date string representation = {0}", str);
}
}실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Date = 10/16/2019 8:56:40 AM Current culture = en-US Short date string = M/d/yyyy Short date string representation = 10/16/2019
정리
DateTime.ToShortDateString() 메서드는 다음과 같은 경우에 유용하게 활용할 수 있습니다.
- 화면이나 보고서에 간결한 날짜 형식을 표시하고 싶을 때
- 시간 정보 없이 날짜만 추출해야 할 때
- 사용자의 문화권 설정에 맞는 날짜 형식으로 자동 변환이 필요할 때
단, 출력 형식이 시스템 문화권에 의존하기 때문에 서버와 클라이언트의 로캘(locale)이 다른 환경에서는 결과가 달라질 수 있습니다. 일관된 형식이 필요하다면 ToString("yyyy-MM-dd")처럼 명시적인 포맷 지정자를 사용하는 것이 좋습니다.