Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# DateTime.ToShortDateString() 메서드 완벽 정리: 사용법과 예제

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")처럼 명시적인 포맷 지정자를 사용하는 것이 좋습니다.