DateTime.TryParseExact Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Convertit la représentation sous forme de chaîne spécifiée d'une date et d'une heure en son équivalent DateTime. Le format de la représentation sous forme de chaîne doit correspondre exactement à un format spécifié. La méthode retourne une valeur qui indique si la conversion a réussi.
Surcharges
TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime) |
Convertit la représentation sous forme d’étendue spécifiée d’une date et d’une heure en son équivalent DateTime à l’aide des informations et du style de format propres à la culture spécifiés. Le format de la représentation sous forme de chaîne doit correspondre exactement au format spécifié. La méthode retourne une valeur qui indique si la conversion a réussi. |
TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles, DateTime) |
Convertit l’étendue de caractères spécifiée d’une date et d’une heure en son équivalent DateTime et retourne une valeur qui indique si la conversion a réussi. |
TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) |
Convertit la représentation sous forme de chaîne spécifiée d'une date et d'une heure en DateTime équivalent à l'aide des informations et du style de format propres à la culture spécifiés. Le format de la représentation sous forme de chaîne doit correspondre exactement au format spécifié. La méthode retourne une valeur qui indique si la conversion a réussi. |
TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) |
Convertit la représentation sous forme de chaîne spécifiée d'une date et heure en son équivalent DateTime à l'aide du tableau de formats, des informations et du style de format propres à la culture spécifiés. Le format de la chaîne doit correspondre exactement à au moins un des formats spécifiés. La méthode retourne une valeur qui indique si la conversion a réussi. |
Remarques
Important
Les ères des calendriers japonais sont basées sur le règne de l’empereur et sont donc amenées à changer. Par exemple, le 1 mai 2019 a marqué le début de l’ère Reiwa dans JapaneseCalendar et JapaneseLunisolarCalendar. Ce changement d’ère affecte toutes les applications qui utilisent ces calendriers. Pour plus d’informations et pour déterminer si vos applications sont affectées, consultez Gestion d’une nouvelle ère dans le calendrier japonais dans .NET. Pour plus d’informations sur le test de vos applications sur les systèmes Windows afin de garantir leur préparation au changement d’ère, consultez Préparer votre application pour le changement d’ère japonaise. Pour connaître les fonctionnalités de .NET qui prennent en charge les calendriers avec plusieurs ères et pour connaître les meilleures pratiques lors de l’utilisation de calendriers qui prennent en charge plusieurs ères, consultez Utilisation des ères.
TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime)
- Source:
- DateTime.cs
- Source:
- DateTime.cs
- Source:
- DateTime.cs
Convertit la représentation sous forme d’étendue spécifiée d’une date et d’une heure en son équivalent DateTime à l’aide des informations et du style de format propres à la culture spécifiés. Le format de la représentation sous forme de chaîne doit correspondre exactement au format spécifié. La méthode retourne une valeur qui indique si la conversion a réussi.
public:
static bool TryParseExact(ReadOnlySpan<char> s, ReadOnlySpan<char> format, IFormatProvider ^ provider, System::Globalization::DateTimeStyles style, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParseExact (ReadOnlySpan<char> s, ReadOnlySpan<char> format, IFormatProvider? provider, System.Globalization.DateTimeStyles style, out DateTime result);
public static bool TryParseExact (ReadOnlySpan<char> s, ReadOnlySpan<char> format, IFormatProvider provider, System.Globalization.DateTimeStyles style, out DateTime result);
static member TryParseExact : ReadOnlySpan<char> * ReadOnlySpan<char> * IFormatProvider * System.Globalization.DateTimeStyles * DateTime -> bool
Public Shared Function TryParseExact (s As ReadOnlySpan(Of Char), format As ReadOnlySpan(Of Char), provider As IFormatProvider, style As DateTimeStyles, ByRef result As DateTime) As Boolean
Paramètres
- s
- ReadOnlySpan<Char>
Étendue contenant les caractères représentant une date et une heure à convertir.
- format
- ReadOnlySpan<Char>
Format requis du paramètre s
.
- provider
- IFormatProvider
Objet qui fournit des informations de mise en forme propres à la culture sur s
.
- style
- DateTimeStyles
Combinaison d'opérations de bits d'une ou plusieurs valeurs d'énumération qui indique le format autorisé du paramètre s
.
- result
- DateTime
Lorsque cette méthode retourne, contient la DateTime valeur équivalente à la date et à l’heure contenues dans s
, si la conversion a réussi, ou DateTime.MinValue si la conversion a échoué. La conversion échoue si le paramètre s
ou format
est null
, est une chaîne vide ou ne contient pas une date et une heure correspondant au modèle spécifié dans format
. Ce paramètre est passé sans être initialisé.
Retours
true
si la conversion de s
est réussie ; sinon, false
.
S’applique à
TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles, DateTime)
- Source:
- DateTime.cs
- Source:
- DateTime.cs
- Source:
- DateTime.cs
Convertit l’étendue de caractères spécifiée d’une date et d’une heure en son équivalent DateTime et retourne une valeur qui indique si la conversion a réussi.
public:
static bool TryParseExact(ReadOnlySpan<char> s, cli::array <System::String ^> ^ formats, IFormatProvider ^ provider, System::Globalization::DateTimeStyles style, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParseExact (ReadOnlySpan<char> s, string?[]? formats, IFormatProvider? provider, System.Globalization.DateTimeStyles style, out DateTime result);
public static bool TryParseExact (ReadOnlySpan<char> s, string[] formats, IFormatProvider provider, System.Globalization.DateTimeStyles style, out DateTime result);
static member TryParseExact : ReadOnlySpan<char> * string[] * IFormatProvider * System.Globalization.DateTimeStyles * DateTime -> bool
Public Shared Function TryParseExact (s As ReadOnlySpan(Of Char), formats As String(), provider As IFormatProvider, style As DateTimeStyles, ByRef result As DateTime) As Boolean
Paramètres
- s
- ReadOnlySpan<Char>
Étendue contenant la chaîne à analyser.
- formats
- String[]
Tableau de formats possibles pour s
.
- provider
- IFormatProvider
Objet qui fournit des informations de mise en forme propres à la culture sur s
.
- style
- DateTimeStyles
Combinaison d'opérations de bits de valeurs d'énumération qui définit la manière d'interpréter les données analysées par rapport au fuseau horaire actuel ou à la date actuelle. Une valeur typique à spécifier est None.
- result
- DateTime
Lorsque cette méthode retourne, contient la DateTime valeur équivalente à la date et à l’heure contenues dans s
, si la conversion a réussi, ou DateTime.MinValue si la conversion a échoué. La conversion échoue si le paramètre s
a la valeur null
, est Empty ou ne contient pas de représentation sous forme de chaîne valide d’une date et d’une heure. Ce paramètre est passé sans être initialisé.
Retours
true
si la conversion du paramètre s
a réussi ; sinon, false
.
S’applique à
TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime)
- Source:
- DateTime.cs
- Source:
- DateTime.cs
- Source:
- DateTime.cs
Convertit la représentation sous forme de chaîne spécifiée d'une date et d'une heure en DateTime équivalent à l'aide des informations et du style de format propres à la culture spécifiés. Le format de la représentation sous forme de chaîne doit correspondre exactement au format spécifié. La méthode retourne une valeur qui indique si la conversion a réussi.
public:
static bool TryParseExact(System::String ^ s, System::String ^ format, IFormatProvider ^ provider, System::Globalization::DateTimeStyles style, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParseExact (string s, string format, IFormatProvider provider, System.Globalization.DateTimeStyles style, out DateTime result);
public static bool TryParseExact (string? s, string? format, IFormatProvider? provider, System.Globalization.DateTimeStyles style, out DateTime result);
static member TryParseExact : string * string * IFormatProvider * System.Globalization.DateTimeStyles * DateTime -> bool
Public Shared Function TryParseExact (s As String, format As String, provider As IFormatProvider, style As DateTimeStyles, ByRef result As DateTime) As Boolean
Paramètres
- s
- String
Chaîne contenant une date et une heure à convertir.
- format
- String
Format requis du paramètre s
.
- provider
- IFormatProvider
Objet qui fournit des informations de mise en forme propres à la culture sur s
.
- style
- DateTimeStyles
Combinaison d'opérations de bits d'une ou plusieurs valeurs d'énumération qui indique le format autorisé du paramètre s
.
- result
- DateTime
Lorsque cette méthode retourne, contient la DateTime valeur équivalente à la date et à l’heure contenues dans s
, si la conversion a réussi, ou DateTime.MinValue si la conversion a échoué. La conversion échoue si le paramètre s
ou format
est null
, est une chaîne vide ou ne contient pas une date et une heure correspondant au modèle spécifié dans format
. Ce paramètre est passé sans être initialisé.
Retours
true
si la conversion de s
est réussie ; sinon, false
.
Exceptions
styles
n’est pas une valeur de DateTimeStyles valide.
- ou -
styles
contient une combinaison non valide de valeurs DateTimeStyles (par exemple, AssumeLocal et AssumeUniversal).
Exemples
L’exemple suivant illustre la DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) méthode. Notez que la chaîne « 5/01/2009 8:30 AM » ne peut pas être analysée correctement lorsque le styles
paramètre est égal, car les espaces de début ne sont pas autorisés DateTimeStyles.None par format
. En outre, la chaîne « 5/01/2009 09:00 » ne peut pas être analysée correctement avec un format
« MM/jj/aaaah:mm », car la chaîne de dates ne précède pas le numéro de mois avec un zéro de début, comme format
requis.
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
CultureInfo enUS = new CultureInfo("en-US");
string dateString;
DateTime dateValue;
// Parse date with no style flags.
dateString = " 5/01/2009 8:30 AM";
if (DateTime.TryParseExact(dateString, "g", enUS,
DateTimeStyles.None, out dateValue))
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
// Allow a leading space in the date string.
if (DateTime.TryParseExact(dateString, "g", enUS,
DateTimeStyles.AllowLeadingWhite, out dateValue))
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
// Use custom formats with M and MM.
dateString = "5/01/2009 09:00";
if (DateTime.TryParseExact(dateString, "M/dd/yyyy hh:mm", enUS,
DateTimeStyles.None, out dateValue))
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
// Allow a leading space in the date string.
if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm", enUS,
DateTimeStyles.None, out dateValue))
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
// Parse a string with time zone information.
dateString = "05/01/2009 01:30:42 PM -05:00";
if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS,
DateTimeStyles.None, out dateValue))
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
// Allow a leading space in the date string.
if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS,
DateTimeStyles.AdjustToUniversal, out dateValue))
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
// Parse a string representing UTC.
dateString = "2008-06-11T16:11:20.0904778Z";
if (DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture,
DateTimeStyles.None, out dateValue))
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
if (DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture,
DateTimeStyles.RoundtripKind, out dateValue))
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}
}
// The example displays the following output:
// ' 5/01/2009 8:30 AM' is not in an acceptable format.
// Converted ' 5/01/2009 8:30 AM' to 5/1/2009 8:30:00 AM (Unspecified).
// Converted '5/01/2009 09:00' to 5/1/2009 9:00:00 AM (Unspecified).
// '5/01/2009 09:00' is not in an acceptable format.
// Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 11:30:42 AM (Local).
// Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 6:30:42 PM (Utc).
// Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 9:11:20 AM (Local).
// Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 4:11:20 PM (Utc).
open System
open System.Globalization
[<EntryPoint>]
let main _ =
let enUS = CultureInfo "en-US"
// Parse date with no style flags.
let dateString = " 5/01/2009 8:30 AM"
match DateTime.TryParseExact(dateString, "g", enUS, DateTimeStyles.None) with
| true, dateValue ->
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
| _ ->
printfn $"'{dateString}' is not in an acceptable format."
// Allow a leading space in the date string.
match DateTime.TryParseExact(dateString, "g", enUS, DateTimeStyles.AllowLeadingWhite) with
| true, dateValue ->
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
| _ ->
printfn $"'{dateString}' is not in an acceptable format."
// Use custom formats with M and MM.
let dateString = "5/01/2009 09:00"
match DateTime.TryParseExact(dateString, "M/dd/yyyy hh:mm", enUS, DateTimeStyles.None) with
| true, dateValue ->
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
| _ ->
printfn $"'{dateString}' is not in an acceptable format."
// Allow a leading space in the date string.
match DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm", enUS, DateTimeStyles.None) with
| true, dateValue ->
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
| _ ->
printfn $"'{dateString}' is not in an acceptable format."
// Parse a string with time zone information.
let dateString = "05/01/2009 01:30:42 PM -05:00"
match DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, DateTimeStyles.None) with
| true, dateValue ->
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
| _ ->
printfn $"'{dateString}' is not in an acceptable format."
// Allow a leading space in the date string.
match DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, DateTimeStyles.AdjustToUniversal) with
| true, dateValue ->
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
| _ ->
printfn $"'{dateString}' is not in an acceptable format."
// Parse a string representing UTC.
let dateString = "2008-06-11T16:11:20.0904778Z"
match DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, DateTimeStyles.None) with
| true, dateValue ->
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
| _ ->
printfn $"'{dateString}' is not in an acceptable format."
match DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind) with
| true, dateValue ->
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
| _ ->
printfn $"'{dateString}' is not in an acceptable format."
0
// The example displays the following output:
// ' 5/01/2009 8:30 AM' is not in an acceptable format.
// Converted ' 5/01/2009 8:30 AM' to 5/1/2009 8:30:00 AM (Unspecified).
// Converted '5/01/2009 09:00' to 5/1/2009 9:00:00 AM (Unspecified).
// '5/01/2009 09:00' is not in an acceptable format.
// Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 11:30:42 AM (Local).
// Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 6:30:42 PM (Utc).
// Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 9:11:20 AM (Local).
// Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 4:11:20 PM (Utc).
Imports System.Globalization
Public Module Example
Public Sub Main()
Dim enUS As New CultureInfo("en-US")
Dim dateString As String
Dim dateValue As Date
' Parse date with no style flags.
dateString = " 5/01/2009 8:30 AM"
If Date.TryParseExact(dateString, "g", enUS, _
DateTimeStyles.None, dateValue) Then
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End If
' Allow a leading space in the date string.
If Date.TryParseExact(dateString, "g", enUS, _
DateTimeStyles.AllowLeadingWhite, dateValue) Then
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End If
' Use custom formats with M and MM.
dateString = "5/01/2009 09:00"
If Date.TryParseExact(dateString, "M/dd/yyyy hh:mm", enUS, _
DateTimeStyles.None, dateValue) Then
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End If
' Allow a leading space in the date string.
If Date.TryParseExact(dateString, "MM/dd/yyyy hh:mm", enUS, _
DateTimeStyles.None, dateValue) Then
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End If
' Parse a string with time zone information.
dateString = "05/01/2009 01:30:42 PM -05:00"
If Date.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, _
DateTimeStyles.None, dateValue) Then
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End If
' Allow a leading space in the date string.
If Date.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, _
DateTimeStyles.AdjustToUniversal, dateValue) Then
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End If
' Parse a string representing UTC.
dateString = "2008-06-11T16:11:20.0904778Z"
If Date.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, _
DateTimeStyles.None, dateValue) Then
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End If
If Date.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, _
DateTimeStyles.RoundtripKind, dateValue) Then
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End If
End Sub
End Module
' The example displays the following output:
' ' 5/01/2009 8:30 AM' is not in an acceptable format.
' Converted ' 5/01/2009 8:30 AM' to 5/1/2009 8:30:00 AM (Unspecified).
' Converted '5/01/2009 09:00' to 5/1/2009 9:00:00 AM (Unspecified).
' '5/01/2009 09:00' is not in an acceptable format.
' Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 11:30:42 AM (Local).
' Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 6:30:42 PM (Utc).
' Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 9:11:20 AM (Local).
' Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 4:11:20 PM (Utc).
Remarques
La DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) méthode analyse la représentation sous forme de chaîne d’une date, qui doit être au format défini par le format
paramètre. Elle est similaire à la DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) méthode, sauf que la TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) méthode ne lève pas d’exception si la conversion échoue.
Le s
paramètre contient la date et l’heure à analyser et doit être dans un format défini par le format
paramètre. Si des éléments date, heure et fuseau horaire sont présents dans s
, ils doivent également apparaître dans l’ordre spécifié par format
. Si format
définit une date sans élément d’heure et que l’opération d’analyse réussit, la valeur résultante DateTime a une heure de minuit (00:00:00:00). Si format
définit une heure sans élément date et que l’opération d’analyse réussit, la valeur résultante DateTime a par défaut une date de DateTime.Now.Date
ou une date de DateTime.MinValue.Date
si styles
inclut l’indicateur DateTimeStyles.NoCurrentDateDefault . Le style
paramètre détermine si le s
paramètre peut contenir des espaces blancs de début, internes ou de fin.
Si s
ne contient aucune information de fuseau horaire, la Kind propriété de l’objet retourné DateTime est DateTimeKind.Unspecified. Ce comportement peut être modifié à l’aide de l’indicateur DateTimeStyles.AssumeLocal , qui retourne une DateTime valeur dont Kind la propriété est DateTimeKind.Local, ou en utilisant les DateTimeStyles.AssumeUniversal indicateurs et DateTimeStyles.AdjustToUniversal , qui retourne une DateTime valeur dont Kind la propriété est DateTimeKind.Utc. Si s contient des informations de fuseau horaire, l’heure est convertie en heure locale, si nécessaire, et la Kind propriété de l’objet retourné DateTime est définie sur DateTimeKind.Local. Ce comportement peut être modifié à l’aide de l’indicateur DateTimeStyles.RoundtripKind pour ne pas convertir le temps universel coordonné (UTC) en heure locale et définir la Kind propriété sur DateTimeKind.Utc.
Le format
paramètre contient un modèle qui correspond au format attendu du s
paramètre. Le modèle dans le format
paramètre se compose d’un ou plusieurs spécificateurs de format personnalisé de la table Chaînes de format de date et d’heure personnalisés , ou d’un spécificateur de format standard unique, qui identifie un modèle prédéfini, à partir de la table Chaînes de format de date et d’heure standard .
Si vous n’utilisez pas de séparateurs de date ou d’heure dans un modèle de format personnalisé, utilisez la culture invariante pour le provider
paramètre et la forme la plus large de chaque spécificateur de format personnalisé. Par exemple, si vous souhaitez spécifier des heures dans le modèle, spécifiez la forme plus large, « HH », au lieu de la forme plus étroite, « H ».
Notes
Au lieu d’exiger la conformité à un format unique pour que s
l’opération d’analyse réussisse, vous pouvez appeler la DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) méthode et spécifier plusieurs formats autorisés. Cela rend l’opération d’analyse plus susceptible de réussir.
Les symboles et chaînes de date et d’heure particuliers (tels que les noms des jours de la semaine dans une langue particulière) utilisés dans s
sont définis par le paramètre, tout comme le provider
format précis de si format
est une chaîne de spécificateur de s
format standard. Le provider
paramètre peut être l’un des éléments suivants :
Objet CultureInfo qui représente la culture utilisée pour interpréter
s
. L’objet DateTimeFormatInfo retourné par sa DateTimeFormat propriété définit les symboles et la mise en forme danss
.Objet DateTimeFormatInfo qui définit le format des données de date et d’heure.
Implémentation personnalisée IFormatProvider dont GetFormat la méthode retourne l’objet CultureInfo ou l’objet DateTimeFormatInfo qui fournit des informations de mise en forme.
Si provider
est null
, l’objet CultureInfo qui correspond à la culture actuelle est utilisé.
Le styles
paramètre inclut un ou plusieurs membres de l’énumération DateTimeStyles qui déterminent si et où les espaces blancs non définis par format
peuvent apparaître dans s
et qui contrôlent le comportement précis de l’opération d’analyse. Le tableau suivant décrit comment chaque membre de l’énumération DateTimeStyles affecte le fonctionnement de la TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) méthode.
Membre DateTimeStyles | Description |
---|---|
AdjustToUniversal | s Analyse et, si nécessaire, le convertit en UTC. Si s inclut un décalage de fuseau horaire ou si s ne contient aucune information de fuseau horaire, mais styles inclut l’indicateur DateTimeStyles.AssumeLocal , la méthode analyse la chaîne, appelle ToUniversalTime pour convertir la valeur retournée DateTime en UTC et définit la Kind propriété sur DateTimeKind.Utc. Si s indique qu’elle représente UTC, ou si s ne contient pas d’informations de fuseau horaire, mais styles inclut l’indicateur DateTimeStyles.AssumeUniversal , la méthode analyse la chaîne, n’effectue aucune conversion de fuseau horaire sur la valeur retournée DateTime et définit la Kind propriété sur DateTimeKind.Utc. Dans tous les autres cas, l’indicateur n’a aucun effet. |
AllowInnerWhite | Spécifie que les espaces blancs non définis par format peuvent apparaître entre n’importe quel élément de date ou d’heure individuel. |
AllowLeadingWhite | Spécifie que l’espace blanc non défini par format peut apparaître au début de s . |
AllowTrailingWhite | Spécifie que l’espace blanc non défini par format peut apparaître à la fin de s . |
AllowWhiteSpaces | Spécifie qui s peuvent contenir des espaces blancs de début, internes et de fin non définis par format . |
AssumeLocal | Spécifie que s’il s manque des informations de fuseau horaire, il est supposé représenter une heure locale. Sauf si l’indicateur DateTimeStyles.AdjustToUniversal est présent, la Kind propriété de la valeur retournée DateTime est définie sur DateTimeKind.Local. |
AssumeUniversal | Spécifie que s’il s manque des informations de fuseau horaire, il est supposé représenter UTC. À moins que l’indicateur DateTimeStyles.AdjustToUniversal ne soit présent, la méthode convertit la valeur retournée DateTime d’UTC en heure locale et définit sa Kind propriété sur DateTimeKind.Local. |
NoCurrentDateDefault | Si s contient l’heure sans informations de date, la date de la valeur de retour est définie sur DateTime.MinValue.Date . |
None | Le s paramètre est analysé à l’aide des valeurs par défaut. Aucun espace blanc autre que celui présent dans format n’est autorisé. S’il s manque un composant de date, la date de la valeur retournée DateTime est définie sur 1/1/0001. Si s ne contient aucune information de fuseau horaire, la Kind propriété de l’objet retourné DateTime est définie sur DateTimeKind.Unspecified. Si des informations de fuseau horaire sont présentes dans s , l’heure est convertie en heure locale et la Kind propriété de l’objet retourné DateTime est définie sur DateTimeKind.Local. |
RoundtripKind | Pour les chaînes qui contiennent des informations de fuseau horaire, tente d’empêcher la conversion en valeur DateTime avec sa Kind propriété définie sur DateTimeKind.Local. Cet indicateur empêche principalement la conversion des heures UTC en heures locales. |
Notes pour les appelants
Dans le .NET Framework 4, la TryParseExact méthode retourne false
si la chaîne à analyser contient un composant d’heure et un indicateur AM/PM qui ne sont pas d’accord. Dans .NET Framework 3.5 et les versions antérieures, le désignateur AM/PM est ignoré.
Voir aussi
- ParseExact
- CultureInfo
- DateTimeFormatInfo
- Analyse des chaînes de date et d'heure dans .NET Framework
- Chaînes de format de date et d'heure standard
- Chaînes de format de date et d’heure personnalisées
S’applique à
TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)
- Source:
- DateTime.cs
- Source:
- DateTime.cs
- Source:
- DateTime.cs
Convertit la représentation sous forme de chaîne spécifiée d'une date et heure en son équivalent DateTime à l'aide du tableau de formats, des informations et du style de format propres à la culture spécifiés. Le format de la chaîne doit correspondre exactement à au moins un des formats spécifiés. La méthode retourne une valeur qui indique si la conversion a réussi.
public:
static bool TryParseExact(System::String ^ s, cli::array <System::String ^> ^ formats, IFormatProvider ^ provider, System::Globalization::DateTimeStyles style, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParseExact (string s, string[] formats, IFormatProvider provider, System.Globalization.DateTimeStyles style, out DateTime result);
public static bool TryParseExact (string? s, string?[]? formats, IFormatProvider? provider, System.Globalization.DateTimeStyles style, out DateTime result);
static member TryParseExact : string * string[] * IFormatProvider * System.Globalization.DateTimeStyles * DateTime -> bool
Public Shared Function TryParseExact (s As String, formats As String(), provider As IFormatProvider, style As DateTimeStyles, ByRef result As DateTime) As Boolean
Paramètres
- s
- String
Chaîne contenant une date et une heure à convertir.
- formats
- String[]
Tableau de formats possibles pour s
.
- provider
- IFormatProvider
Objet qui fournit des informations de format spécifiques à la culture sur s
.
- style
- DateTimeStyles
Combinaison d'opérations de bits de valeurs d'énumération qui indique le format autorisé du paramètre s
. Une valeur typique à spécifier est None.
- result
- DateTime
Lorsque cette méthode retourne, contient la DateTime valeur équivalente à la date et à l’heure contenues dans s
, si la conversion a réussi, ou DateTime.MinValue si la conversion a échoué. La conversion échoue si s
ou formats
est null
, si s
ou un élément de formats
est une chaîne vide, ou si la mise en forme de s
ne correspond pas exactement à celle qui est spécifiée par au moins l'un des modèles de format dans formats
. Ce paramètre est passé sans être initialisé.
Retours
true
si la conversion du paramètre s
a réussi ; sinon, false
.
Exceptions
styles
n’est pas une valeur de DateTimeStyles valide.
- ou -
styles
contient une combinaison non valide de valeurs DateTimeStyles (par exemple, AssumeLocal et AssumeUniversal).
Exemples
L’exemple suivant utilise la DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) méthode pour s’assurer qu’une chaîne dans un certain nombre de formats possibles peut être analysée avec succès .
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
string[] formats= {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt",
"MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss",
"M/d/yyyy hh:mm tt", "M/d/yyyy hh tt",
"M/d/yyyy h:mm", "M/d/yyyy h:mm",
"MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm"};
string[] dateStrings = {"5/1/2009 6:32 PM", "05/01/2009 6:32:05 PM",
"5/1/2009 6:32:00", "05/01/2009 06:32",
"05/01/2009 06:32:00 PM", "05/01/2009 06:32:00"};
DateTime dateValue;
foreach (string dateString in dateStrings)
{
if (DateTime.TryParseExact(dateString, formats,
new CultureInfo("en-US"),
DateTimeStyles.None,
out dateValue))
Console.WriteLine("Converted '{0}' to {1}.", dateString, dateValue);
else
Console.WriteLine("Unable to convert '{0}' to a date.", dateString);
}
}
}
// The example displays the following output:
// Converted '5/1/2009 6:32 PM' to 5/1/2009 6:32:00 PM.
// Converted '05/01/2009 6:32:05 PM' to 5/1/2009 6:32:05 PM.
// Converted '5/1/2009 6:32:00' to 5/1/2009 6:32:00 AM.
// Converted '05/01/2009 06:32' to 5/1/2009 6:32:00 AM.
// Converted '05/01/2009 06:32:00 PM' to 5/1/2009 6:32:00 PM.
// Converted '05/01/2009 06:32:00' to 5/1/2009 6:32:00 AM.
open System
open System.Globalization
let formats=
[| "M/d/yyyy h:mm:ss tt"; "M/d/yyyy h:mm tt"
"MM/dd/yyyy hh:mm:ss"; "M/d/yyyy h:mm:ss"
"M/d/yyyy hh:mm tt"; "M/d/yyyy hh tt"
"M/d/yyyy h:mm"; "M/d/yyyy h:mm"
"MM/dd/yyyy hh:mm"; "M/dd/yyyy hh:mm" |]
let dateStrings =
[ "5/1/2009 6:32 PM"; "05/01/2009 6:32:05 PM"
"5/1/2009 6:32:00"; "05/01/2009 06:32"
"05/01/2009 06:32:00 PM"; "05/01/2009 06:32:00" ]
for dateString in dateStrings do
match DateTime.TryParseExact(dateString, formats, CultureInfo "en-US", DateTimeStyles.None) with
| true, dateValue ->
printfn $"Converted '{dateString}' to {dateValue}."
| _ ->
printfn $"Unable to convert '{dateString}' to a date."
// The example displays the following output:
// Converted '5/1/2009 6:32 PM' to 5/1/2009 6:32:00 PM.
// Converted '05/01/2009 6:32:05 PM' to 5/1/2009 6:32:05 PM.
// Converted '5/1/2009 6:32:00' to 5/1/2009 6:32:00 AM.
// Converted '05/01/2009 06:32' to 5/1/2009 6:32:00 AM.
// Converted '05/01/2009 06:32:00 PM' to 5/1/2009 6:32:00 PM.
// Converted '05/01/2009 06:32:00' to 5/1/2009 6:32:00 AM.
Imports System.Globalization
Public Module Example
Public Sub Main()
Dim formats() As String = {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt", _
"MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss", _
"M/d/yyyy hh:mm tt", "M/d/yyyy hh tt", _
"M/d/yyyy h:mm", "M/d/yyyy h:mm", _
"MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm"}
Dim dateStrings() As String = {"5/1/2009 6:32 PM", "05/01/2009 6:32:05 PM", _
"5/1/2009 6:32:00", "05/01/2009 06:32", _
"05/01/2009 06:32:00 PM", "05/01/2009 06:32:00"}
Dim dateValue As DateTime
For Each dateString As String In dateStrings
If Date.TryParseExact(dateString, formats, _
New CultureInfo("en-US"), _
DateTimeStyles.None, _
dateValue) Then
Console.WriteLine("Converted '{0}' to {1}.", dateString, dateValue)
Else
Console.WriteLine("Unable to convert '{0}' to a date.", dateString)
End If
Next
End Sub
End Module
' The example displays the following output:
' Converted '5/1/2009 6:32 PM' to 5/1/2009 6:32:00 PM.
' Converted '05/01/2009 6:32:05 PM' to 5/1/2009 6:32:05 PM.
' Converted '5/1/2009 6:32:00' to 5/1/2009 6:32:00 AM.
' Converted '05/01/2009 06:32' to 5/1/2009 6:32:00 AM.
' Converted '05/01/2009 06:32:00 PM' to 5/1/2009 6:32:00 PM.
' Converted '05/01/2009 06:32:00' to 5/1/2009 6:32:00 AM.
Remarques
La DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) méthode analyse la représentation sous forme de chaîne d’une date qui correspond à l’un des modèles attribués au formats
paramètre. C’est comme la DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) méthode, sauf que la TryParseExact méthode ne lève pas d’exception si la conversion échoue.
Le s
paramètre contient la date et l’heure à analyser. Si le s
paramètre contient uniquement une heure et aucune date, la date actuelle est utilisée, sauf si le style
paramètre inclut l’indicateur DateTimeStyles.NoCurrentDateDefault , auquel cas la date par défaut (DateTime.Date.MinValue
) est utilisée. Si le s
paramètre contient uniquement une date et aucune heure, minuit (00:00:00) est utilisé. Le style
paramètre détermine également si le s
paramètre peut contenir des espaces blancs de début, internes ou de fin autres que ceux autorisés par l’une des chaînes de format dans formats
.
Si s
ne contient aucune information de fuseau horaire, la Kind propriété de l’objet retourné DateTime est DateTimeKind.Unspecified. Ce comportement peut être modifié à l’aide de l’indicateur DateTimeStyles.AssumeLocal , qui retourne une DateTime valeur dont Kind la propriété est DateTimeKind.Local, ou en utilisant les DateTimeStyles.AssumeUniversal indicateurs et DateTimeStyles.AdjustToUniversal , qui retourne une DateTime valeur dont Kind la propriété est DateTimeKind.Utc. Si s contient des informations de fuseau horaire, l’heure est convertie en heure locale, si nécessaire, et la Kind propriété de l’objet retourné DateTime est définie sur DateTimeKind.Local. Ce comportement peut être modifié à l’aide de l’indicateur DateTimeStyles.RoundtripKind pour ne pas convertir le temps universel coordonné (UTC) en heure locale et définir la Kind propriété sur DateTimeKind.Utc.
Le formats
paramètre contient un tableau de modèles, dont s
l’un doit correspondre exactement si l’opération d’analyse doit réussir. Les modèles du formats
paramètre se composent d’un ou plusieurs spécificateurs de format personnalisés de la table Chaînes de format de date et d’heure personnalisés , ou d’un spécificateur de format standard unique, qui identifie un modèle prédéfini, à partir de la table Chaînes de format de date et d’heure standard .
Si vous n’utilisez pas de séparateurs de date ou d’heure dans un modèle de format personnalisé, utilisez la culture invariante pour le provider
paramètre et la forme la plus large de chaque spécificateur de format personnalisé. Par exemple, si vous souhaitez spécifier des heures dans le modèle, spécifiez la forme plus large, « HH », au lieu de la forme plus étroite, « H ».
Les symboles et chaînes de date et d’heure particuliers (tels que les noms des jours de la semaine dans une langue particulière) utilisés dans s
sont définis par le paramètre, tout comme le provider
format précis de si format
est une chaîne de spécificateur de s
format standard. Le provider
paramètre peut être l’un des éléments suivants :
Objet CultureInfo qui représente la culture utilisée pour interpréter
s
. L’objet DateTimeFormatInfo retourné par sa DateTimeFormat propriété définit les symboles et la mise en forme danss
.Objet DateTimeFormatInfo qui définit le format des données de date et d’heure.
Implémentation personnalisée IFormatProvider dont GetFormat la méthode retourne l’objet CultureInfo ou l’objet DateTimeFormatInfo qui fournit des informations de mise en forme.
Si provider
est null
, l’objet CultureInfo qui correspond à la culture actuelle est utilisé.
Le styles
paramètre inclut un ou plusieurs membres de l’énumération DateTimeStyles qui déterminent si et où les espaces blancs non définis par format
peuvent apparaître dans s
et qui contrôlent le comportement précis de l’opération d’analyse. Le tableau suivant décrit comment chaque membre de l’énumération DateTimeStyles affecte le fonctionnement de la TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) méthode.
Membre DateTimeStyles | Description |
---|---|
AdjustToUniversal | s Analyse et, si nécessaire, le convertit en UTC. Si s inclut un décalage de fuseau horaire ou si s ne contient aucune information de fuseau horaire, mais styles inclut l’indicateur DateTimeStyles.AssumeLocal , la méthode analyse la chaîne, appelle ToUniversalTime pour convertir la valeur retournée DateTime en UTC et définit la Kind propriété sur DateTimeKind.Utc. Si s indique qu’elle représente UTC, ou si s ne contient pas d’informations de fuseau horaire, mais styles inclut l’indicateur DateTimeStyles.AssumeUniversal , la méthode analyse la chaîne, n’effectue aucune conversion de fuseau horaire sur la valeur retournée DateTime et définit la Kind propriété sur DateTimeKind.Utc. Dans tous les autres cas, l’indicateur n’a aucun effet. |
AllowInnerWhite | Spécifie que les espaces blancs non définis par format peuvent apparaître entre n’importe quel élément de date ou d’heure individuel. |
AllowLeadingWhite | Spécifie que l’espace blanc non défini par format peut apparaître au début de s . |
AllowTrailingWhite | Spécifie que l’espace blanc non défini par format peut apparaître à la fin de s . |
AllowWhiteSpaces | Spécifie qui s peuvent contenir des espaces blancs de début, internes et de fin non définis par format . |
AssumeLocal | Spécifie que s’il s manque des informations de fuseau horaire, il est supposé représenter une heure locale. Sauf si l’indicateur DateTimeStyles.AdjustToUniversal est présent, la Kind propriété de la valeur retournée DateTime est définie sur DateTimeKind.Local. |
AssumeUniversal | Spécifie que s’il s manque des informations de fuseau horaire, il est supposé représenter UTC. À moins que l’indicateur DateTimeStyles.AdjustToUniversal ne soit présent, la méthode convertit la valeur retournée DateTime d’UTC en heure locale et définit sa Kind propriété sur DateTimeKind.Local. |
NoCurrentDateDefault | Si s contient l’heure sans informations de date, la date de la valeur de retour est définie sur DateTime.MinValue.Date . |
None | Le s paramètre est analysé à l’aide des valeurs par défaut. Aucun espace blanc autre que celui présent dans format n’est autorisé. S’il s manque un composant de date, la date de la valeur retournée DateTime est définie sur 1/1/0001. Si s ne contient aucune information de fuseau horaire, la Kind propriété de l’objet retourné DateTime est définie sur DateTimeKind.Unspecified. Si des informations de fuseau horaire sont présentes dans s , l’heure est convertie en heure locale et la Kind propriété de l’objet retourné DateTime est définie sur DateTimeKind.Local. |
RoundtripKind | Pour les chaînes qui contiennent des informations de fuseau horaire, tente d’empêcher la conversion en valeur DateTime avec sa Kind propriété définie sur DateTimeKind.Local. Cet indicateur empêche principalement la conversion des heures UTC en heures locales. |
Notes pour les appelants
Dans le .NET Framework 4, la TryParseExact méthode retourne false
si la chaîne à analyser contient un composant d’heure et un indicateur AM/PM qui ne sont pas d’accord. Dans .NET Framework 3.5 et les versions antérieures, le désignateur AM/PM est ignoré.
Voir aussi
- ParseExact
- CultureInfo
- DateTimeFormatInfo
- Analyse des chaînes de date et d'heure dans .NET Framework
- Chaînes de format de date et d'heure standard
- Chaînes de format de date et d’heure personnalisées
S’applique à
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour