DateTime.TryParseExact Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Converteert de opgegeven tekenreeksweergave van een datum en tijd naar het DateTime equivalent ervan. De indeling van de tekenreeksweergave moet exact overeenkomen met een opgegeven indeling. De methode retourneert een waarde die aangeeft of de conversie is geslaagd.
Overloads
| Name | Description |
|---|---|
| TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime) |
Converteert de opgegeven periodeweergave van een datum en tijd naar het DateTime equivalent ervan met behulp van de opgegeven notatie, cultuurspecifieke notatiegegevens en -stijl. De indeling van de tekenreeksweergave moet exact overeenkomen met de opgegeven indeling. De methode retourneert een waarde die aangeeft of de conversie is geslaagd. |
| TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles, DateTime) |
Converteert het opgegeven tekenbereik van een datum en tijd naar het DateTime equivalent ervan en retourneert een waarde die aangeeft of de conversie is geslaagd. |
| TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) |
Converteert de opgegeven tekenreeksweergave van een datum en tijd naar DateTime het equivalent ervan met behulp van de opgegeven notatie, cultuurspecifieke notatiegegevens en stijl. De indeling van de tekenreeksweergave moet exact overeenkomen met de opgegeven indeling. De methode retourneert een waarde die aangeeft of de conversie is geslaagd. |
| TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) |
Converteert de opgegeven tekenreeksweergave van een datum en tijd naar DateTime het equivalent ervan met behulp van de opgegeven matrix met notaties, cultuurspecifieke notatiegegevens en stijl. De indeling van de tekenreeksweergave moet exact overeenkomen met ten minste één van de opgegeven notaties. De methode retourneert een waarde die aangeeft of de conversie is geslaagd. |
Opmerkingen
Important
Tijdperken in de Japanse kalenders zijn gebaseerd op het keizerrijk en zullen daarom naar verwachting veranderen. Bijvoorbeeld: 1 mei 2019 markeerde het begin van het Reiwa-tijdperk in de JapaneseCalendar en JapaneseLunisolarCalendar. Een dergelijke wijziging van het tijdperk is van invloed op alle toepassingen die gebruikmaken van deze agenda's. Zie Verwerken van een nieuw tijdperk in de Japanse kalender in .NET voor meer informatie en om te bepalen of uw toepassingen worden beïnvloed. Zie Uw toepassing voorbereiden voor de wijziging in het Japanse tijdperk voor informatie over het testen van uw toepassingen op Windows-systemen om ervoor te zorgen dat deze gereed zijn voor de wijziging van het tijdperk. Zie Werken met tijdperken voor functies in .NET die agenda's met meerdere tijdperken ondersteunen en voor aanbevolen procedures bij het werken met agenda's die meerdere tijdperken ondersteunen.
TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime)
- Bron:
- DateTime.cs
- Bron:
- DateTime.cs
- Bron:
- DateTime.cs
- Bron:
- DateTime.cs
- Bron:
- DateTime.cs
Converteert de opgegeven periodeweergave van een datum en tijd naar het DateTime equivalent ervan met behulp van de opgegeven notatie, cultuurspecifieke notatiegegevens en -stijl. De indeling van de tekenreeksweergave moet exact overeenkomen met de opgegeven indeling. De methode retourneert een waarde die aangeeft of de conversie is geslaagd.
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
Parameters
- s
- ReadOnlySpan<Char>
Een periode met de tekens die een datum en tijd vertegenwoordigen die moeten worden geconverteerd.
- format
- ReadOnlySpan<Char>
De vereiste indeling van s.
- provider
- IFormatProvider
Een object dat cultuurspecifieke opmaakinformatie over slevert.
- style
- DateTimeStyles
Een bitsgewijze combinatie van een of meer opsommingswaarden die de toegestane notatie aangeven s.
- result
- DateTime
Wanneer deze methode retourneert, bevat deze de DateTime waarde die gelijk is aan de datum en tijd in s, als de conversie is geslaagd of DateTime.MinValue als de conversie is mislukt. De conversie mislukt als de parameter of de s parameter een lege tekenreeks is formatof geen datum en tijd bevat die overeenkomen met het patroon dat is opgegeven in null.format Deze parameter wordt niet-geïnitialiseerd doorgegeven.
Retouren
trueals s deze is geconverteerd; anders. false
Uitzonderingen
De lengte van format is 1 en is niet een van de notatieaanduidingstekens die zijn gedefinieerd voor DateTimeFormatInfo.
– of –
format bevat geen geldig aangepast opmaakpatroon.
style is geen geldige DateTimeStyles waarde.
– of –
style bevat een ongeldige combinatie van DateTimeStyles waarden (bijvoorbeeld zowel AssumeLocal als AssumeUniversal).
Van toepassing op
TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles, DateTime)
- Bron:
- DateTime.cs
- Bron:
- DateTime.cs
- Bron:
- DateTime.cs
- Bron:
- DateTime.cs
- Bron:
- DateTime.cs
Converteert het opgegeven tekenbereik van een datum en tijd naar het DateTime equivalent ervan en retourneert een waarde die aangeeft of de conversie is geslaagd.
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
Parameters
- s
- ReadOnlySpan<Char>
Het bereik met de tekenreeks die moet worden geparseerd.
- formats
- String[]
Een matrix met toegestane indelingen van s.
- provider
- IFormatProvider
Een object dat cultuurspecifieke opmaakinformatie over slevert.
- style
- DateTimeStyles
Een bitsgewijze combinatie van opsommingswaarden waarmee wordt gedefinieerd hoe de geparseerde datum moet worden geïnterpreteerd ten opzichte van de huidige tijdzone of de huidige datum. Een typische waarde die moet worden opgegeven, is None.
- result
- DateTime
Wanneer deze methode retourneert, bevat deze de DateTime waarde die gelijk is aan de datum en tijd in s, als de conversie is geslaagd of DateTime.MinValue als de conversie is mislukt. De conversie mislukt als de s parameter is, is nullEmptyof geen geldige tekenreeksweergave van een datum en tijd bevat. Deze parameter wordt niet-geïnitialiseerd doorgegeven.
Retouren
trueals s deze is geconverteerd; anders. false
Uitzonderingen
De lengte van een element in formats is 1 en is niet een van de notatieaanduidingstekens die zijn gedefinieerd voor DateTimeFormatInfo.
style is geen geldige DateTimeStyles waarde.
– of –
style bevat een ongeldige combinatie van DateTimeStyles waarden (bijvoorbeeld zowel AssumeLocal als AssumeUniversal).
Van toepassing op
TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime)
- Bron:
- DateTime.cs
- Bron:
- DateTime.cs
- Bron:
- DateTime.cs
- Bron:
- DateTime.cs
- Bron:
- DateTime.cs
Converteert de opgegeven tekenreeksweergave van een datum en tijd naar DateTime het equivalent ervan met behulp van de opgegeven notatie, cultuurspecifieke notatiegegevens en stijl. De indeling van de tekenreeksweergave moet exact overeenkomen met de opgegeven indeling. De methode retourneert een waarde die aangeeft of de conversie is geslaagd.
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
Parameters
- s
- String
Een tekenreeks met een datum en tijd die moet worden geconverteerd.
- format
- String
De vereiste indeling van s.
- provider
- IFormatProvider
Een object dat cultuurspecifieke opmaakinformatie over slevert.
- style
- DateTimeStyles
Een bitsgewijze combinatie van een of meer opsommingswaarden die de toegestane notatie aangeven s.
- result
- DateTime
Wanneer deze methode retourneert, bevat deze de DateTime waarde die gelijk is aan de datum en tijd in s, als de conversie is geslaagd of DateTime.MinValue als de conversie is mislukt. De conversie mislukt als de parameter of de s parameter een lege tekenreeks is formatof geen datum en tijd bevat die overeenkomen met het patroon dat is opgegeven in null.format Deze parameter wordt niet-geïnitialiseerd doorgegeven.
Retouren
trueals s deze is geconverteerd; anders. false
Uitzonderingen
De lengte van format is 1 en is niet een van de notatieaanduidingstekens die zijn gedefinieerd voor DateTimeFormatInfo.
– of –
format bevat geen geldig aangepast opmaakpatroon.
style is geen geldige DateTimeStyles waarde.
– of –
style bevat een ongeldige combinatie van DateTimeStyles waarden (bijvoorbeeld zowel AssumeLocal als AssumeUniversal).
Voorbeelden
In het volgende voorbeeld ziet u de DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) methode. Houd er rekening mee dat de tekenreeks "5/01/2009 8:30 AM" niet kan worden geparseerd wanneer de styles parameter gelijk is aan DateTimeStyles.None omdat voorloopspaties niet zijn toegestaan door format. Bovendien kan de tekenreeks "5/01/2009 09:00" niet worden geparseerd met een format van "MM/dd/jjjjhh:mm" omdat de datumtekenreeks niet voorafgaat aan het maandnummer met een voorloopnul, zoals format vereist.
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).
Opmerkingen
De DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) methode parseert de tekenreeksweergave van een datum, die de indeling moet hebben die is gedefinieerd door de format parameter. Het is vergelijkbaar met de DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) methode, behalve dat de TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) methode geen uitzondering genereert als de conversie mislukt.
De s parameter bevat de datum en tijd die moeten worden geparseerd en moeten een indeling hebben die is gedefinieerd door de format parameter. Als datum-, tijd- en tijdzone-elementen aanwezig szijn, moeten ze ook worden weergegeven in de volgorde die is opgegeven door format. Als format een datum zonder tijdelement wordt gedefinieerd en de parseringsbewerking slaagt, heeft de resulterende DateTime waarde een tijd van middernacht (00:00:00). Als format een tijd zonder datumelement wordt gedefinieerd en de parseringsbewerking slaagt, heeft de resulterende DateTime waarde standaard een datum van DateTime.Now.Dateof een datum DateTime.MinValue.Datestyles waarvan de DateTimeStyles.NoCurrentDateDefault vlag is opgenomen. De style parameter bepaalt of de s parameter voorloop-, binnen- of volgspaties mag bevatten.
Als s er geen tijdzonegegevens zijn, is Kindde DateTime eigenschap van het geretourneerde DateTimeKind.Unspecified object. Dit gedrag kan worden gewijzigd met behulp van de DateTimeStyles.AssumeLocal vlag, die een DateTime waarde retourneert waarvan Kind de eigenschap is DateTimeKind.Local, of door de DateTimeStyles.AssumeUniversal en DateTimeStyles.AdjustToUniversal vlaggen te gebruiken, die een DateTime waarde retourneert waarvan Kind de eigenschap is DateTimeKind.Utc. Als s tijdzone-informatie bevat, wordt de tijd, indien nodig, geconverteerd naar lokale tijd en wordt de Kind eigenschap van het geretourneerde DateTime object ingesteld DateTimeKind.Localop . Dit gedrag kan worden gewijzigd door de DateTimeStyles.RoundtripKind vlag te gebruiken om Coordinated Universal Time (UTC) niet te converteren naar een lokale tijd en de Kind eigenschap in te stellen op DateTimeKind.Utc.
De format parameter bevat een patroon dat overeenkomt met de verwachte indeling van de s parameter. Het patroon in de format parameter bestaat uit een of meer aangepaste notatieaanduidingen uit de tabel Aangepaste datum- en tijdnotatietekenreeksen of één standaardnotatieaanduiding, die een vooraf gedefinieerd patroon identificeert, uit de tabel Tekenreeksen voor standaarddatum- en tijdnotatie .
Als u geen datum- of tijdscheidingstekens gebruikt in een aangepast opmaakpatroon, gebruikt u de invariante cultuur voor de provider parameter en de breedste vorm van elke aangepaste notatieaanduiding. Als u bijvoorbeeld uren in het patroon wilt opgeven, geeft u het bredere formulier 'UU' op in plaats van het smallere formulier H.
Note
In plaats van dat deze s voldoet aan één indeling voor de parseringsbewerking, kunt u de DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) methode aanroepen en meerdere toegestane indelingen opgeven. Hierdoor slaagt de parseringsbewerking waarschijnlijker.
De specifieke datum- en tijdsymbolen en tekenreeksen (zoals de namen van de dagen van de week in een bepaalde taal) die in s een bepaalde taal worden gebruikt, worden gedefinieerd door de provider parameter, net zoals de exacte notatietekenreeks sformat als standaardnotatietekenreeks. De provider parameter kan een van de volgende zijn:
Een CultureInfo object dat de cultuur vertegenwoordigt die wordt gebruikt om te interpreteren
s. Het DateTimeFormatInfo object dat door DateTimeFormat de eigenschap wordt geretourneerd, definieert de symbolen en opmaak ins.Een DateTimeFormatInfo object dat de notatie van datum- en tijdgegevens definieert.
Een aangepaste IFormatProvider implementatie waarvan GetFormat de methode het CultureInfo object of het DateTimeFormatInfo object retourneert dat opmaakinformatie biedt.
Als provider dat het is null, wordt het CultureInfo object dat overeenkomt met de huidige cultuur gebruikt.
De styles parameter bevat een of meer leden van de DateTimeStyles opsomming die bepalen of en waar witruimte die niet is gedefinieerd format , kan worden weergegeven s en waarmee het precieze gedrag van de parseringsbewerking wordt bepaald. In de volgende tabel wordt beschreven hoe elk lid van de DateTimeStyles opsomming van invloed is op de werking van de TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) methode.
| Element van DateTimeStyles | Beschrijving |
|---|---|
| AdjustToUniversal | Parseert en converteert s deze indien nodig naar UTC. Als s dit een tijdzone-offset bevat of geen s tijdzone-informatie bevat, maar styles wel de DateTimeStyles.AssumeLocal vlag bevat, parseert de methode de tekenreeks, roept ToUniversalTime aan om de geretourneerde DateTime waarde te converteren naar UTC en stelt de Kind eigenschap in op DateTimeKind.Utc. Als s aangeeft dat het UTC vertegenwoordigt, of als s geen tijdzone-informatie bevat maar styles wel de DateTimeStyles.AssumeUniversal vlag bevat, parseert de methode de tekenreeks, voert geen conversie van de tijdzone uit op de geretourneerde DateTime waarde en stelt de Kind eigenschap in op DateTimeKind.Utc. In alle andere gevallen heeft de vlag geen effect. |
| AllowInnerWhite | Hiermee geeft u op dat witruimte die niet is gedefinieerd format , kan worden weergegeven tussen een afzonderlijk datum- of tijdelement. |
| AllowLeadingWhite | Hiermee geeft u op dat witruimte niet gedefinieerd door format kan worden weergegeven aan het begin van s. |
| AllowTrailingWhite | Hiermee geeft u op dat witruimte die niet is gedefinieerd door format kan worden weergegeven aan het einde van s. |
| AllowWhiteSpaces | Hiermee geeft u op dat s voorloop-, binnenste en volgspaties mogen bevatten die niet zijn gedefinieerd door format. |
| AssumeLocal | Hiermee geeft u op dat als s er geen tijdzonegegevens zijn, wordt ervan uitgegaan dat deze een lokale tijd vertegenwoordigt. Tenzij de DateTimeStyles.AdjustToUniversal vlag aanwezig is, wordt de Kind eigenschap van de geretourneerde DateTime waarde ingesteld op DateTimeKind.Local. |
| AssumeUniversal | Geef aan dat, als s geen tijdzonegegevens bevat, deze als UTC wordt beschouwd. Tenzij de DateTimeStyles.AdjustToUniversal vlag aanwezig is, converteert de methode de geretourneerde DateTime waarde van UTC naar de lokale tijd en stelt de Kind eigenschap in op DateTimeKind.Local. |
| NoCurrentDateDefault | Als s tijd zonder datumgegevens bevat, wordt de datum van de retourwaarde ingesteld op DateTime.MinValue.Date. |
| None | De s parameter wordt geparseerd met behulp van standaardwaarden. Er is geen witruimte toegestaan dan die aanwezig format is. Als s er geen datumonderdeel is, wordt de datum van de geretourneerde DateTime waarde ingesteld op 1-1-0001. Als s er geen tijdzonegegevens zijn, wordt de Kind eigenschap van het geretourneerde DateTime object ingesteld op DateTimeKind.Unspecified. Als er tijdzone-informatie aanwezig sis, wordt de tijd geconverteerd naar de lokale tijd en wordt de Kind eigenschap van het geretourneerde DateTime object ingesteld op DateTimeKind.Local. |
| RoundtripKind | Voor tekenreeksen die tijdzone-informatie bevatten, probeert u te voorkomen dat de conversie naar een DateTime waarde wordt uitgevoerd waarbij Kind de eigenschap is ingesteld op DateTimeKind.Local. Deze vlag voorkomt voornamelijk de conversie van UTC-tijden naar lokale tijden. |
Notities voor bellers
In het .NET Framework 4 retourneert de methode TryParseExactfalse als de tekenreeks die moet worden geparseerd een uuronderdeel en een AM/PM-ontwerpfunctie bevat die niet in overeenstemming zijn. In het .NET Framework 3.5 en eerdere versies wordt de AM/PM-ontwerpator genegeerd.
Zie ook
- ParseExact
- CultureInfo
- DateTimeFormatInfo
- Parsing Date and Time Strings in the .NET Framework
- Standaardnotatietekenreeksen voor datum en tijd
- Aangepaste datum- en tijdnotatietekenreeksen
Van toepassing op
TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)
- Bron:
- DateTime.cs
- Bron:
- DateTime.cs
- Bron:
- DateTime.cs
- Bron:
- DateTime.cs
- Bron:
- DateTime.cs
Converteert de opgegeven tekenreeksweergave van een datum en tijd naar DateTime het equivalent ervan met behulp van de opgegeven matrix met notaties, cultuurspecifieke notatiegegevens en stijl. De indeling van de tekenreeksweergave moet exact overeenkomen met ten minste één van de opgegeven notaties. De methode retourneert een waarde die aangeeft of de conversie is geslaagd.
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
Parameters
- s
- String
Een tekenreeks die een datum en tijd bevat die moet worden geconverteerd.
- formats
- String[]
Een matrix met toegestane indelingen van s.
- provider
- IFormatProvider
Een object dat cultuurspecifieke indelingsinformatie over slevert.
- style
- DateTimeStyles
Een bitsgewijze combinatie van opsommingswaarden die de toegestane notatie van s. Een typische waarde die moet worden opgegeven, is None.
- result
- DateTime
Wanneer deze methode retourneert, bevat deze de DateTime waarde die gelijk is aan de datum en tijd in s, als de conversie is geslaagd of DateTime.MinValue als de conversie is mislukt. De conversie mislukt als s of formatsnulls een element formats van een lege tekenreeks is of als de indeling s niet exact is opgegeven door ten minste één van de notatiepatronen in .formats Deze parameter wordt niet-geïnitialiseerd doorgegeven.
Retouren
trueals de s parameter is geconverteerd; anders. false
Uitzonderingen
De lengte van een element in formats is 1 en is niet een van de notatieaanduidingstekens die zijn gedefinieerd voor DateTimeFormatInfo.
style is geen geldige DateTimeStyles waarde.
– of –
style bevat een ongeldige combinatie van DateTimeStyles waarden (bijvoorbeeld zowel AssumeLocal als AssumeUniversal).
Voorbeelden
In het volgende voorbeeld wordt de DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) methode gebruikt om ervoor te zorgen dat een tekenreeks in een aantal mogelijke notaties kan worden geparseerd.
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.
Opmerkingen
De DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) methode parseert de tekenreeksweergave van een datum die overeenkomt met een van de patronen die aan de formats parameter zijn toegewezen. Het is net als de DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) methode, behalve dat de TryParseExact methode geen uitzondering genereert als de conversie mislukt.
De s parameter bevat de datum en tijd die moet worden geparseerd. Als de s parameter slechts een tijd en geen datum bevat, wordt de huidige datum gebruikt, tenzij de style parameter de DateTimeStyles.NoCurrentDateDefault vlag bevat, in welk geval de standaarddatum (DateTime.Date.MinValue) wordt gebruikt. Als de s parameter alleen een datum en geen tijd bevat, wordt middernacht (00:00:00) gebruikt. De style parameter bepaalt ook of de s parameter voorlooptekens, binnenste of volgspaties mag bevatten, behalve tekens die zijn toegestaan door een van de notatietekenreeksen in formats.
Als s er geen tijdzonegegevens zijn, is Kindde DateTime eigenschap van het geretourneerde DateTimeKind.Unspecified object. Dit gedrag kan worden gewijzigd met behulp van de DateTimeStyles.AssumeLocal vlag, die een DateTime waarde retourneert waarvan Kind de eigenschap is DateTimeKind.Local, of door de DateTimeStyles.AssumeUniversal en DateTimeStyles.AdjustToUniversal vlaggen te gebruiken, die een DateTime waarde retourneert waarvan Kind de eigenschap is DateTimeKind.Utc. Als s tijdzone-informatie bevat, wordt de tijd, indien nodig, geconverteerd naar lokale tijd en wordt de Kind eigenschap van het geretourneerde DateTime object ingesteld DateTimeKind.Localop . Dit gedrag kan worden gewijzigd door de DateTimeStyles.RoundtripKind vlag te gebruiken om Coordinated Universal Time (UTC) niet te converteren naar een lokale tijd en de Kind eigenschap in te stellen op DateTimeKind.Utc.
De formats parameter bevat een matrix met patronen, waarvan s een exact moet overeenkomen als de parseringsbewerking is geslaagd. De patronen in de formats parameter bestaan uit een of meer aangepaste notatieaanduidingen uit de tabel Aangepaste datum- en tijdnotatietekenreeksen of één standaardnotatieaanduiding, die een vooraf gedefinieerd patroon identificeert, uit de tabel Tekenreeksen voor standaarddatum- en tijdnotatie .
Als u geen datum- of tijdscheidingstekens gebruikt in een aangepast opmaakpatroon, gebruikt u de invariante cultuur voor de provider parameter en de breedste vorm van elke aangepaste notatieaanduiding. Als u bijvoorbeeld uren in het patroon wilt opgeven, geeft u het bredere formulier 'UU' op in plaats van het smallere formulier H.
De specifieke datum- en tijdsymbolen en tekenreeksen (zoals de namen van de dagen van de week in een bepaalde taal) die in s een bepaalde taal worden gebruikt, worden gedefinieerd door de provider parameter, net zoals de exacte notatietekenreeks sformat als standaardnotatietekenreeks. De provider parameter kan een van de volgende zijn:
Een CultureInfo object dat de cultuur vertegenwoordigt die wordt gebruikt om te interpreteren
s. Het DateTimeFormatInfo object dat door DateTimeFormat de eigenschap wordt geretourneerd, definieert de symbolen en opmaak ins.Een DateTimeFormatInfo object dat de notatie van datum- en tijdgegevens definieert.
Een aangepaste IFormatProvider implementatie waarvan GetFormat de methode het CultureInfo object of het DateTimeFormatInfo object retourneert dat opmaakinformatie biedt.
Als provider dat het is null, wordt het CultureInfo object dat overeenkomt met de huidige cultuur gebruikt.
De styles parameter bevat een of meer leden van de DateTimeStyles opsomming die bepalen of en waar witruimte die niet is gedefinieerd format , kan worden weergegeven s en waarmee het precieze gedrag van de parseringsbewerking wordt bepaald. In de volgende tabel wordt beschreven hoe elk lid van de DateTimeStyles opsomming van invloed is op de werking van de TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) methode.
| Element van DateTimeStyles | Beschrijving |
|---|---|
| AdjustToUniversal | Parseert en converteert s deze indien nodig naar UTC. Als s dit een tijdzone-offset bevat of geen s tijdzone-informatie bevat, maar styles wel de DateTimeStyles.AssumeLocal vlag bevat, parseert de methode de tekenreeks, roept ToUniversalTime aan om de geretourneerde DateTime waarde te converteren naar UTC en stelt de Kind eigenschap in op DateTimeKind.Utc. Als s aangeeft dat het UTC vertegenwoordigt, of als s geen tijdzone-informatie bevat maar styles wel de DateTimeStyles.AssumeUniversal vlag bevat, parseert de methode de tekenreeks, voert geen conversie van de tijdzone uit op de geretourneerde DateTime waarde en stelt de Kind eigenschap in op DateTimeKind.Utc. In alle andere gevallen heeft de vlag geen effect. |
| AllowInnerWhite | Hiermee geeft u op dat witruimte die niet is gedefinieerd format , kan worden weergegeven tussen een afzonderlijk datum- of tijdelement. |
| AllowLeadingWhite | Hiermee geeft u op dat witruimte niet gedefinieerd door format kan worden weergegeven aan het begin van s. |
| AllowTrailingWhite | Hiermee geeft u op dat witruimte die niet is gedefinieerd door format kan worden weergegeven aan het einde van s. |
| AllowWhiteSpaces | Hiermee geeft u op dat s voorloop-, binnenste en volgspaties mogen bevatten die niet zijn gedefinieerd door format. |
| AssumeLocal | Hiermee geeft u op dat als s er geen tijdzonegegevens zijn, wordt ervan uitgegaan dat deze een lokale tijd vertegenwoordigt. Tenzij de DateTimeStyles.AdjustToUniversal vlag aanwezig is, wordt de Kind eigenschap van de geretourneerde DateTime waarde ingesteld op DateTimeKind.Local. |
| AssumeUniversal | Geef aan dat, als s geen tijdzonegegevens bevat, deze als UTC wordt beschouwd. Tenzij de DateTimeStyles.AdjustToUniversal vlag aanwezig is, converteert de methode de geretourneerde DateTime waarde van UTC naar de lokale tijd en stelt de Kind eigenschap in op DateTimeKind.Local. |
| NoCurrentDateDefault | Als s tijd zonder datumgegevens bevat, wordt de datum van de retourwaarde ingesteld op DateTime.MinValue.Date. |
| None | De s parameter wordt geparseerd met behulp van standaardwaarden. Er is geen witruimte toegestaan dan die aanwezig format is. Als s er geen datumonderdeel is, wordt de datum van de geretourneerde DateTime waarde ingesteld op 1-1-0001. Als s er geen tijdzonegegevens zijn, wordt de Kind eigenschap van het geretourneerde DateTime object ingesteld op DateTimeKind.Unspecified. Als er tijdzone-informatie aanwezig sis, wordt de tijd geconverteerd naar de lokale tijd en wordt de Kind eigenschap van het geretourneerde DateTime object ingesteld op DateTimeKind.Local. |
| RoundtripKind | Voor tekenreeksen die tijdzone-informatie bevatten, probeert u te voorkomen dat de conversie naar een DateTime waarde wordt uitgevoerd waarbij Kind de eigenschap is ingesteld op DateTimeKind.Local. Deze vlag voorkomt voornamelijk de conversie van UTC-tijden naar lokale tijden. |
Notities voor bellers
In het .NET Framework 4 retourneert de methode TryParseExactfalse als de tekenreeks die moet worden geparseerd een uuronderdeel en een AM/PM-ontwerpfunctie bevat die niet in overeenstemming zijn. In het .NET Framework 3.5 en eerdere versies wordt de AM/PM-ontwerpator genegeerd.
Zie ook
- ParseExact
- CultureInfo
- DateTimeFormatInfo
- Parsing Date and Time Strings in the .NET Framework
- Standaardnotatietekenreeksen voor datum en tijd
- Aangepaste datum- en tijdnotatietekenreeksen