DateTimeFormatInfo.SetAllDateTimePatterns(String[], Char) Метод

Определение

Задает строки пользовательского формата даты и времени, соответствующие заданной стандартной строке формата.Sets the custom date and time format strings that correspond to a specified standard format string.

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

Параметры

patterns
String[]

Массив пользовательских строк формата.An array of custom format strings.

format
Char

Строка стандартного формата, связанная со строками пользовательского формата, указанными в параметре patterns.The standard format string associated with the custom format strings specified in the patterns parameter.

Атрибуты

Исключения

Параметр patterns имеет значение null или является массивом нулевой длины.patterns is null or a zero-length array.

- или --or- format не является допустимым строка стандартного формата или является строка стандартного формата, шаблоны которых не может быть задано.format is not a valid standard format string or is a standard format string whose patterns cannot be set.

patterns имеет элемент массива со значением null.patterns has an array element whose value is null.

Данный объект DateTimeFormatInfo доступен только для чтения.This DateTimeFormatInfo object is read-only.

Примеры

В следующем примере создается экземпляр CultureInfo объекта, который представляет язык и региональные параметры "en-US" (Английский США) и использует его для синтаксического анализа массива строк даты и времени с использованием строки стандартного формата "Y".The following example instantiates a CultureInfo object that represents the "en-US" (English - United States) culture and uses it to parse an array of date and time strings using the "Y" standard format string. Затем он использует SetAllDateTimePatterns метод, чтобы связать новую строку настраиваемого формата со строкой стандартного формата "Y", а затем пытается выполнить синтаксический анализ массива строк даты и времени.It then uses the SetAllDateTimePatterns method to associate a new custom format string with the "Y" standard format string, and then attempts to parse the array of date and time strings. Выходные данные в примере показывают, что новая строка настраиваемого формата используется в операциях синтаксического анализа и форматирования.Output from the example demonstrates that the new custom format string is used in both the parsing and formatting operations.

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 Метод определяет строки настраиваемого формата, соответствующие определенной строке стандартного формата даты и времени.The SetAllDateTimePatterns method defines the custom format strings that correspond to a particular standard date and time format string. Если вызов метода форматирования даты и времени включает строку стандартного формата даты и времени, заданную параметром format, метод использует первый элемент patterns массива для определения формата результирующей строки.If a call to a date and time formatting method includes the standard date and time format string specified by format, the method uses the first element in the patterns array to define the format of the resulting string.

Предупреждение

Методы Parse patterns и TryParse не выполняют полный перебор всех строк в при синтаксическом анализе строкового представления даты и времени.The Parse and TryParse methods do not fully iterate all strings in patterns when parsing the string representation of a date and time. Если требуется, чтобы строка даты и времени имели определенные форматы в операции синтаксического анализа, DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles)необходимо передать массив допустимых форматов в метод, DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles), DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)или DateTimeOffset.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset) .If you require a date and time string to have particular formats in a parsing operation, you should pass the array of valid formats to the DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles), DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles), DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime), or DateTimeOffset.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset) method.

Можно определить строки настраиваемого формата, соответствующие строкам "d", "D", "t", "T" и "y", а также стандартным форматам даты и времени.You can define custom format strings that correspond to the "d", "D", "t", "T", and "y" or "Y" standard date and time format strings. Если значение format равно любой другой строке стандартного формата SetAllDateTimePatterns , метод создает исключение ArgumentException.If the value of format is any other standard format string, the SetAllDateTimePatterns method throws an ArgumentException.

Если строки настраиваемого формата даты и времени содержат разделители дат, следует явно указать разделитель дат вместо того, чтобы полагаться на метод синтаксического анализа или форматирования, который заменяет описатель настраиваемого формата "/" на определенный разделитель дат.If your custom date and time format strings include date separators, you should explicitly specify a date separator instead of relying on the parsing or formatting method that replaces the "/" custom format specifier with a particular date separator. Например, чтобы получить шаблон MM-ДД-ГГГГ, используйте шаблон «MM-ДД-ГГГГ».For example, to obtain the pattern MM-DD-yyyy, use the pattern "MM-DD-yyyy".

Применяется к

Дополнительно