DateTimeFormatInfo.SetAllDateTimePatterns(String[], Char) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Imposta le stringhe di formato di data e ora che corrispondono a una stringa di formato standard specificata.
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)
Parametri
- patterns
- String[]
Matrice di stringhe di formato personalizzate.
- format
- Char
La stringa di formato standard associata alle stringhe di formato personalizzato specificate nel parametro patterns
.
- Attributi
Eccezioni
patterns
è null
oppure è una matrice di lunghezza zero.
-oppure-
format
non è una stringa di formato standard valida o non è una stringa di formato standard i cui modelli non possono essere impostati.
patterns
ha un elemento di matrice il cui valore è null
.
Questo oggetto DateTimeFormatInfo è di sola lettura.
Esempio
Nell'esempio seguente viene creata un'istanza di un CultureInfo oggetto che rappresenta le impostazioni cultura "en-US" (inglese - Stati Uniti) e lo usa per analizzare una matrice di stringhe di data e ora usando la stringa di formato standard "Y". Usa quindi il SetAllDateTimePatterns metodo per associare una nuova stringa di formato personalizzata alla stringa di formato standard "Y" e quindi tenta di analizzare la matrice di stringhe di data e ora. L'output dell'esempio dimostra che la nuova stringa di formato personalizzata viene usata nelle operazioni di analisi e formattazione.
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
Commenti
Il SetAllDateTimePatterns metodo definisce le stringhe di formato personalizzate che corrispondono a una determinata stringa di formato di data e ora standard. Se una chiamata a un metodo di formattazione di data e ora include la stringa di formato data e ora standard specificata da format
, il metodo usa il primo elemento nella patterns
matrice per definire il formato della stringa risultante.
Avviso
I Parse
metodi e TryParse
non eseguono l'iterazione completa di tutte le stringhe in durante patterns
l'analisi della rappresentazione di stringa di una data e di un'ora. Se è necessario che una stringa di data e ora abbia formati specifici in un'operazione di analisi, è necessario passare la matrice di formati validi al DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles)metodo , DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles), DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)o DateTimeOffset.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset) .
È possibile definire stringhe di formato personalizzate che corrispondono alle stringhe di formato standard di data e ora "d", "D", "t", "T" e "y" o "Y". Se il valore di è qualsiasi altra stringa di format
formato standard, il SetAllDateTimePatterns metodo genera un'eccezione ArgumentException.
Se le stringhe di formato di data e ora personalizzate includono separatori di data, è necessario specificare in modo esplicito un separatore di data anziché basarsi sul metodo di analisi o formattazione che sostituisce l'identificatore di formato personalizzato "/" con un separatore di data specifico. Ad esempio, per ottenere il modello MM-GG-aa, usare il modello "MM-GG-aaaa".