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

C# DateTime.GetDateTimeFormats() 메서드 – 모든 날짜·시간 문자열 형식 한 번에 얻기


C#의 DateTime.GetDateTimeFormats() 메서드는 현재 DateTime 인스턴스의 값을 표준 날짜 및 시간 형식 지정자가 지원하는 모든 문자열 표현으로 변환할 때 사용합니다. 이 메서드를 호출하면 다양한 날짜·시간 형식의 문자열들이 담긴 배열(string[])이 반환되며, 반환되는 형식은 현재 스레드의 문화권(Culture) 설정에 따라 달라집니다.

구문

메서드 구문은 다음과 같습니다.

public string[] GetDateTimeFormats();
public string[] GetDateTimeFormats(char ch);

ch 매개변수에는 표준 날짜 및 시간 형식 문자를 전달할 수 있습니다. 예를 들어 'd'는 간단한 날짜 패턴, 'D'는 자세한 날짜 패턴, 'F'는 전체 날짜/시간 패턴(긴 시간 포함)을 의미합니다.

예제 1: 지원되는 모든 형식 가져오기

다음 예제는 매개변수 없이 호출하여 지원 가능한 모든 문자열 표현을 확인하는 방법을 보여줍니다.

using System;
public class Demo {
    public static void Main() {
        DateTime d = new DateTime(2019, 11, 10, 7, 20, 45);
        string[] res = d.GetDateTimeFormats();
        foreach(string s in res)
            Console.WriteLine(s);
    }
}

실행 결과

위 코드를 실행하면 아래와 같이 다양한 조합의 날짜·시간 문자열이 출력됩니다.

11/10/2019
11/10/19
19/11/10
2019-11-10
10-Nov-19
Sunday, November 10, 2019
November 10, 2019
Sunday, November 10, 2019 7:20 AM
Sunday, November 10, 2019 7:20:45 AM
...
2019-11-10T07:20:45.0000000
Sun, 10 Nov 2019 07:20:45 GMT
2019-11-10T07:20:45
7:20 AM
7:20:45 AM
2019-11-10 07:20:45Z
November 2019

※ 실제 출력 결과는 위보다 훨씬 많으며, 날짜 전용·날짜+시간·정렬 가능 형식·RFC1123 형식·시간 전용 형식 등 여러 범주의 문자열이 모두 포함됩니다.

예제 2: 형식 지정자를 사용한 호출

형식 지정자를 지정하면 해당 범주에 속한 형식들만 반환됩니다. 아래 예제에서는 'F'(전체 날짜/시간 패턴) 지정자를 사용해 보겠습니다.

using System;
public class Demo {
    public static void Main() {
        DateTime d = new DateTime(2019, 11, 10, 7, 20, 45);
        string[] res = d.GetDateTimeFormats('F');
        foreach(string s in res)
            Console.WriteLine(s);
    }
}

실행 결과

Sunday, November 10, 2019 7:20:45 AM
Sunday, November 10, 2019 07:20:45 AM
Sunday, November 10, 2019 7:20:45
Sunday, November 10, 2019 07:20:45
November 10, 2019 7:20:45 AM
November 10, 2019 07:20:45 AM
November 10, 2019 7:20:45
November 10, 2019 07:20:45
Sunday, 10 November, 2019 7:20:45 AM
Sunday, 10 November, 2019 07:20:45 AM
Sunday, 10 November, 2019 7:20:45
Sunday, 10 November, 2019 07:20:45
10 November, 2019 7:20:45 AM
10 November, 2019 07:20:45 AM
10 November, 2019 7:20:45
10 November, 2019 07:20:45

정리

GetDateTimeFormats()는 매개변수 없이 호출하면 현재 문화권에서 지원하는 모든 날짜·시간 문자열 표현을, 형식 지정자를 전달하면 해당 범주의 표현만 반환합니다. 사용자에게 날짜 형식 선택지를 제공해야 하는 UI나 로그 파싱 등에서 유용하게 활용할 수 있습니다.