DateTimeFormatInfo.SetAllDateTimePatterns(String[], Char) 메서드

정의

지정된 표준 형식 문자열에 해당하는 사용자 지정 날짜 및 시간 형식 문자열을 설정합니다.

public:
 void SetAllDateTimePatterns(cli::array <System::String ^> ^ patterns, char format);
public void SetAllDateTimePatterns (string[] patterns, char format);
[System.Runtime.InteropServices.ComVisible(false)]
public void SetAllDateTimePatterns (string[] patterns, char format);
member this.SetAllDateTimePatterns : string[] * char -> unit
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.SetAllDateTimePatterns : string[] * char -> unit
Public Sub SetAllDateTimePatterns (patterns As String(), format As Char)

매개 변수

patterns
String[]

사용자 지정 형식 문자열의 배열입니다.

format
Char

patterns 매개 변수에서 지정한 사용자 지정 형식 문자열과 관련된 표준 형식 문자열입니다.

특성

예외

patternsnull 또는 길이가 0인 배열입니다.

또는

format이 유효한 표준 형식 문자열이 아니거나 패턴을 설정할 수 없는 표준 형식 문자열입니다.

patterns에는 값이 null인 배열 요소가 있습니다.

DateTimeFormatInfo 개체가 읽기 전용인 경우

예제

다음 예제에서는 "en-US"(영어 - 미국) 문화권을 나타내는 개체를 인스턴스화 CultureInfo 하고 이를 사용하여 "Y" 표준 형식 문자열을 사용하여 날짜 및 시간 문자열 배열을 구문 분석합니다. 그런 다음 메서드를 SetAllDateTimePatterns 사용하여 새 사용자 지정 형식 문자열을 "Y" 표준 형식 문자열과 연결한 다음 날짜 및 시간 문자열의 배열을 구문 분석하려고 시도합니다. 예제의 출력은 구문 분석 및 서식 지정 작업 모두에서 새 사용자 지정 서식 문자열이 사용됨을 보여 줍니다.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      // Use standard en-US culture.
      CultureInfo enUS = new CultureInfo("en-US");

      string[] values = { "December 2010", "December, 2010",
                          "Dec-2010", "December-2010" };

      Console.WriteLine("Supported Y/y patterns for {0} culture:", enUS.Name);
      foreach (var pattern in enUS.DateTimeFormat.GetAllDateTimePatterns('Y'))
         Console.WriteLine("   " + pattern);

      Console.WriteLine();

      // Try to parse each date string using "Y" format specifier.
      foreach (var value in values) {
         try {
            DateTime dat = DateTime.ParseExact(value, "Y", enUS);
            Console.WriteLine(String.Format(enUS, "   Parsed {0} as {1:Y}", value, dat));
         }
         catch (FormatException) {
            Console.WriteLine("   Cannot parse {0}", value);
         }
      }
      Console.WriteLine();

      //Modify supported "Y" format.
      enUS.DateTimeFormat.SetAllDateTimePatterns( new string[] { "MMM-yyyy" } , 'Y');

      Console.WriteLine("New supported Y/y patterns for {0} culture:", enUS.Name);
      foreach (var pattern in enUS.DateTimeFormat.GetAllDateTimePatterns('Y'))
         Console.WriteLine("   " + pattern);

      Console.WriteLine();

      // Try to parse each date string using "Y" format specifier.
      foreach (var value in values) {
         try {
            DateTime dat = DateTime.ParseExact(value, "Y", enUS);
            Console.WriteLine(String.Format(enUS, "   Parsed {0} as {1:Y}", value, dat));
         }
         catch (FormatException) {
            Console.WriteLine("   Cannot parse {0}", value);
         }
      }
   }
}
// The example displays the following output:
//       Supported Y/y patterns for en-US culture:
//          MMMM, yyyy
//
//          Cannot parse December 2010
//          Parsed December, 2010 as December, 2010
//          Cannot parse Dec-2010
//          Cannot parse December-2010
//
//       New supported Y/y patterns for en-US culture:
//          MMM-yyyy
//
//          Cannot parse December 2010
//          Cannot parse December, 2010
//          Parsed Dec-2010 as Dec-2010
//          Cannot parse December-2010
Imports System.Globalization

Module Example
   Public Sub Main()
      ' Use standard en-US culture.
      Dim enUS As New CultureInfo("en-US")
      
      Dim values() As String = { "December 2010", "December, 2010",  
                                 "Dec-2010", "December-2010" } 
      
      Console.WriteLine("Supported Y/y patterns for {0} culture:", enUS.Name)
      For Each pattern In enUS.DateTimeFormat.GetAllDateTimePatterns("Y"c)
         Console.WriteLine("   " + pattern)
      Next 
      Console.WriteLine()
      
      ' Try to parse each date string using "Y" format specifier.
      For Each value In values
         Try
            Dim dat As Date = Date.ParseExact(value, "Y", enUS)
            Console.WriteLine(String.Format(enUS, "   Parsed {0} as {1:Y}", value, dat))
         Catch e As FormatException
            Console.WriteLine("   Cannot parse {0}", value)
         End Try   
      Next   
      Console.WriteLine()
      
      'Modify supported "Y" format.
      enUS.DateTimeFormat.SetAllDateTimePatterns( { "MMM-yyyy" } , "Y"c)
      
      Console.WriteLine("New supported Y/y patterns for {0} culture:", enUS.Name)
      For Each pattern In enUS.DateTimeFormat.GetAllDateTimePatterns("Y"c)
         Console.WriteLine("   " + pattern)
      Next 
      Console.WriteLine()

      ' Try to parse each date string using "Y" format specifier.
      For Each value In values
         Try
            Dim dat As Date = Date.ParseExact(value, "Y", enUS)
            Console.WriteLine(String.Format(enUS, "   Parsed {0} as {1:Y}", value, dat))
         Catch e As FormatException
            Console.WriteLine("   Cannot parse {0}", value)
         End Try   
      Next   
   End Sub
End Module
' The example displays the following output:
'       Supported Y/y patterns for en-US culture:
'          MMMM, yyyy
'       
'          Cannot parse December 2010
'          Parsed December, 2010 as December, 2010
'          Cannot parse Dec-2010
'          Cannot parse December-2010
'       
'       New supported Y/y patterns for en-US culture:
'          MMM-yyyy
'       
'          Cannot parse December 2010
'          Cannot parse December, 2010
'          Parsed Dec-2010 as Dec-2010
'          Cannot parse December-2010

설명

메서드는 SetAllDateTimePatterns 특정 표준 날짜 및 시간 형식 문자열에 해당하는 사용자 지정 형식 문자열을 정의합니다. 날짜 및 시간 형식 지정 메서드에 대한 호출에 로 지정된 format표준 날짜 및 시간 형식 문자열이 포함된 경우 메서드는 배열의 첫 번째 요소를 patterns 사용하여 결과 문자열의 형식을 정의합니다.

경고

및 메서드는 Parse 날짜 및 TryParse 시간의 문자열 표현을 patterns 구문 분석할 때 의 모든 문자열을 완전히 반복하지 않습니다. 구문 분석 작업에서 특정 형식을 갖기 위해 날짜 및 시간 문자열이 필요한 경우 유효한 형식 배열을 , , DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles)DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)또는 DateTimeOffset.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset) 메서드에 DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles)전달해야 합니다.

"d", "D", "t", "T", "y" 또는 "Y" 표준 날짜 및 시간 형식 문자열에 해당하는 사용자 지정 서식 문자열을 정의할 수 있습니다. 값 format 이 다른 표준 형식 문자열이면 메서드는 SetAllDateTimePatternsArgumentExceptionthrow합니다.

사용자 지정 날짜 및 시간 형식 문자열에 날짜 구분 기호가 포함된 경우 "/" 사용자 지정 형식 지정자를 특정 날짜 구분 기호로 바꾸는 구문 분석 또는 서식 지정 메서드를 사용하는 대신 날짜 구분 기호를 명시적으로 지정해야 합니다. 예를 들어 MM-DD-yyyy 패턴을 가져오려면 "MM-DD-yyyy" 패턴을 사용합니다.

적용 대상

추가 정보