DateTime.Parse 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 tekenreeksweergave van een datum en tijd naar het DateTime equivalent ervan.
Overloads
| Name | Description |
|---|---|
| Parse(String) |
Converteert de tekenreeksweergave van een datum en tijd naar het DateTime equivalent ervan met behulp van de conventies van de huidige cultuur. |
| Parse(String, IFormatProvider) |
Converteert de tekenreeksweergave van een datum en tijd naar het DateTime equivalent ervan met behulp van cultuurspecifieke notatiegegevens. |
| Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) |
Converteert een geheugenspanne die een tekenreeksweergave van een datum en tijd bevat naar het DateTime equivalent ervan met behulp van cultuurspecifieke notatiegegevens en een opmaakstijl. |
| Parse(String, IFormatProvider, DateTimeStyles) |
Converteert de tekenreeksweergave van een datum en tijd naar het DateTime equivalent ervan met behulp van cultuurspecifieke notatiegegevens en een opmaakstijl. |
Voorbeelden
Talrijke voorbeelden die de DateTime.Parse methode aanroepen, worden in de sectie Opmerkingen van dit artikel en in de documentatie voor de afzonderlijke DateTime.Parse overbelastingen door elkaar heen gekruist.
U kunt ook een volledige set DateTime.Parse voorbeelden downloaden, die zijn opgenomen in een .NET Core-project voor C#.
Opmerkingen
In deze sectie:
- Welke methode roep ik aan?
- De tekenreeks die moet worden geparseerd
- Parseren en culturele conventies
- Elementen van parseren en stijl
- De retourwaarde en DateTime.Kind
Welke methode roep ik aan?
| Tot | Call |
|---|---|
| Een datum- en tijdtekenreeks parseren met behulp van de conventies van de huidige cultuur. | Parse(String) overbelasting |
| Parseert een datum- en tijdtekenreeks met behulp van de conventies van een specifieke cultuur. | Parse(String, IFormatProvider) overbelasting (zie Parsering en culturele conventies) |
| Parseert een datum- en tijdtekenreeks met speciale stijlelementen (zoals witruimte of geen witruimte). | Parse(String, IFormatProvider, DateTimeStyles) overbelasting |
| Parseert een datum- en tijdtekenreeks die een bepaalde indeling moet hebben. | DateTime.ParseExact of DateTime.TryParseExact |
| Parseert een datum- en tijdtekenreeks en voert een conversie uit naar UTC of lokale tijd. | Parse(String, IFormatProvider, DateTimeStyles) overbelasting |
| Een datum- en tijdtekenreeks parseren zonder uitzonderingen te verwerken. | methode DateTime.TryParse |
| Herstel (retour) een datum- en tijdwaarde die is gemaakt door een opmaakbewerking. | Geef de standaardnotatietekenreeks 'o' of 'r' door aan de ToString(String) methode en roep de Parse(String, IFormatProvider, DateTimeStyles) overbelasting aan met DateTimeStyles.RoundtripKind |
| Parseert een datum- en tijdtekenreeks in een vaste notatie over de grenzen van de computer (en mogelijk culturele grenzen). | DateTime.ParseExact of DateTime.TryParseExact methode |
De tekenreeks die moet worden geparseerd
De Parse methode probeert de tekenreeksweergave van een datum- en tijdwaarde te converteren naar het DateTime equivalent ervan. Er wordt geprobeerd de invoertekenreeks volledig te parseren zonder een FormatException uitzondering te genereren. Wanneer u overbelastingen gebruikt die een IFormatProvider object accepteren, wordt het gebruikt om te parseren StringToParse. Als er geen dergelijk object wordt opgegeven, CurrentCulture wordt in plaats daarvan gebruikt.
Important
Als de parseringsbewerking mislukt vanwege een niet-herkende tekenreeksindeling, genereert de methode een FormatException, terwijl de TryParse methode retourneertfalse.Parse Omdat het verwerken van uitzonderingen duur kan zijn, moet u gebruiken Parse wanneer de parseringsbewerking naar verwachting slaagt omdat de invoerbron wordt vertrouwd.
TryParse parseerfouten hebben de voorkeur, met name omdat een invoerbron niet wordt vertrouwd of als u redelijke standaardwaarden hebt om te vervangen door tekenreeksen die niet succesvol worden geparseerd.
De tekenreeks die moet worden geparseerd, kan een van de volgende vormen aannemen:
Een tekenreeks met een datum- en tijdonderdeel.
Een tekenreeks met een datum, maar geen tijdonderdeel. Als het tijdonderdeel afwezig is, wordt ervan uitgegaan dat de methode 12:00 middernacht is. Als het datumonderdeel een jaar van twee cijfers heeft, wordt het geconverteerd naar een jaar op basis van de huidige kalender van de Calendar.TwoDigitYearMax huidige cultuur of de huidige kalender van de opgegeven cultuur (als u een overbelasting met een niet-null-argument
providergebruikt).Een tekenreeks met een datumonderdeel dat alleen de maand en het jaar bevat, maar geen dagonderdeel. Bij de methode wordt uitgegaan van de eerste dag van de maand.
Een tekenreeks met een datumonderdeel dat alleen de maand en de dag bevat, maar geen jaaronderdeel. Bij de methode wordt uitgegaan van het huidige jaar.
Een tekenreeks met een tijd, maar geen datumonderdeel. Bij de methode wordt uitgegaan van de huidige datum, tenzij u de Parse(String, IFormatProvider, DateTimeStyles) overbelasting aanroept en in het
stylesargument opneemtDateTimeStyles.NoCurrentDateDefault. In dat geval wordt bij de methode uitgegaan van een datum van 1 januari 0001.Een tekenreeks met een tijdonderdeel dat alleen het uur en een AM/PM-ontwerpator bevat, zonder datumonderdeel. Bij de methode wordt uitgegaan van de huidige datum en een tijd zonder minuten en geen seconden. U kunt dit gedrag wijzigen door de Parse(String, IFormatProvider, DateTimeStyles) overbelasting aan te roepen en op te nemen DateTimeStyles.NoCurrentDateDefault in het
stylesargument. In dat geval gaat de methode uit van een datum van 1 januari 0001.Een tekenreeks die tijdzone-informatie bevat en voldoet aan ISO 8601. In de volgende voorbeelden wijst de eerste tekenreeks Coordinated Universal Time (UTC) aan en de tweede geeft de tijd aan in een tijdzone die zeven uur eerder is dan UTC:
"2008-11-01T19:35:00.0000000Z" "2008-11-01T19:35:00.0000000-07:00"
Een tekenreeks die de GMT-ontwerpaar bevat en voldoet aan de RFC 1123-tijdnotatie; bijvoorbeeld:
"Za, 01 november 2008 19:35:00 GMT"
Een tekenreeks die de datum en tijd bevat, samen met informatie over tijdzoneverschil; bijvoorbeeld:
"03/01/2009 05:42:00 -5:00"
In het volgende voorbeeld worden tekenreeksen in elk van deze indelingen geparseerd met behulp van de opmaakconventies van de huidige cultuur, die in dit geval de en-US cultuur is:
using System;
public class Example
{
public static void Main()
{
(string dateAsString, string description)[] dateInfo = { ("08/18/2018 07:22:16", "String with a date and time component"),
("08/18/2018", "String with a date component only"),
("8/2018", "String with a month and year component only"),
("8/18", "String with a month and day component only"),
("07:22:16", "String with a time component only"),
("7 PM", "String with an hour and AM/PM designator only"),
("2018-08-18T07:22:16.0000000Z", "UTC string that conforms to ISO 8601"),
("2018-08-18T07:22:16.0000000-07:00", "Non-UTC string that conforms to ISO 8601"),
("Sat, 18 Aug 2018 07:22:16 GMT", "String that conforms to RFC 1123"),
("08/18/2018 07:22:16 -5:00", "String with date, time, and time zone information" ) };
Console.WriteLine($"Today is {DateTime.Now:d}\n");
foreach (var item in dateInfo) {
Console.WriteLine($"{item.description + ":",-52} '{item.dateAsString}' --> {DateTime.Parse(item.dateAsString)}");
}
}
}
// The example displays output like the following:
// Today is 2/22/2018
//
// String with a date and time component: '08/18/2018 07:22:16' --> 8/18/2018 7:22:16 AM
// String with a date component only: '08/18/2018' --> 8/18/2018 12:00:00 AM
// String with a month and year component only: '8/2018' --> 8/1/2018 12:00:00 AM
// String with a month and day component only: '8/18' --> 8/18/2018 12:00:00 AM
// String with a time component only: '07:22:16' --> 2/22/2018 7:22:16 AM
// String with an hour and AM/PM designator only: '7 PM' --> 2/22/2018 7:00:00 PM
// UTC string that conforms to ISO 8601: '2018-08-18T07:22:16.0000000Z' --> 8/18/2018 12:22:16 AM
// Non-UTC string that conforms to ISO 8601: '2018-08-18T07:22:16.0000000-07:00' --> 8/18/2018 7:22:16 AM
// String that conforms to RFC 1123: 'Sat, 18 Aug 2018 07:22:16 GMT' --> 8/18/2018 12:22:16 AM
// String with date, time, and time zone information: '08/18/2018 07:22:16 -5:00' --> 8/18/2018 5:22:16 AM
module Parse6
open System
let dateInfo =
[ "08/18/2018 07:22:16", "String with a date and time component"
"08/18/2018", "String with a date component only"
"8/2018", "String with a month and year component only"
"8/18", "String with a month and day component only"
"07:22:16", "String with a time component only"
"7 PM", "String with an hour and AM/PM designator only"
"2018-08-18T07:22:16.0000000Z", "UTC string that conforms to ISO 8601"
"2018-08-18T07:22:16.0000000-07:00", "Non-UTC string that conforms to ISO 8601"
"Sat, 18 Aug 2018 07:22:16 GMT", "String that conforms to RFC 1123"
"08/18/2018 07:22:16 -5:00", "String with date, time, and time zone information" ]
printfn $"Today is {DateTime.Now:d}\n"
for dateAsString, description in dateInfo do
printfn $"""{description + ":",-52} '{dateAsString}' --> {DateTime.Parse(dateAsString)}"""
// The example displays output like the following:
// Today is 2/22/2018
//
// String with a date and time component: '08/18/2018 07:22:16' --> 8/18/2018 7:22:16 AM
// String with a date component only: '08/18/2018' --> 8/18/2018 12:00:00 AM
// String with a month and year component only: '8/2018' --> 8/1/2018 12:00:00 AM
// String with a month and day component only: '8/18' --> 8/18/2018 12:00:00 AM
// String with a time component only: '07:22:16' --> 2/22/2018 7:22:16 AM
// String with an hour and AM/PM designator only: '7 PM' --> 2/22/2018 7:00:00 PM
// UTC string that conforms to ISO 8601: '2018-08-18T07:22:16.0000000Z' --> 8/18/2018 12:22:16 AM
// Non-UTC string that conforms to ISO 8601: '2018-08-18T07:22:16.0000000-07:00' --> 8/18/2018 7:22:16 AM
// String that conforms to RFC 1123: 'Sat, 18 Aug 2018 07:22:16 GMT' --> 8/18/2018 12:22:16 AM
// String with date, time, and time zone information: '08/18/2018 07:22:16 -5:00' --> 8/18/2018 5:22:16 AM
Public Module Strings
Public Sub Main()
Dim dateInfo() As (dateAsString As String, description As String) =
{ ("08/18/2018 07:22:16", "String with a date and time component"),
("08/18/2018", "String with a date component only"),
("8/2018", "String with a month and year component only"),
("8/18", "String with a month and day component only"),
("07:22:16", "String with a time component only"),
("7 PM", "String with an hour and AM/PM designator only"),
("2018-08-18T07:22:16.0000000Z", "UTC string that conforms to ISO 8601"),
("2018-08-18T07:22:16.0000000-07:00", "Non-UTC string that conforms to ISO 8601"),
("Sat, 18 Aug 2018 07:22:16 GMT", "String that conforms to RFC 1123"),
("08/18/2018 07:22:16 -5:00", "String with date, time, and time zone information" ) }
Console.WriteLine($"Today is {Date.Now:d}{vbCrLf}")
For Each item in dateInfo
Console.WriteLine($"{item.description + ":",-52} '{item.dateAsString}' --> {DateTime.Parse(item.dateAsString)}")
Next
End Sub
End Module
' The example displays output like the following:
' Today is 2/22/2018
'
' String with a date and time component: '08/18/2018 07:22:16' --> 8/18/2018 7:22:16 AM
' String with a date component only: '08/18/2018' --> 8/18/2018 12:00:00 AM
' String with a month and year component only: '8/2018' --> 8/1/2018 12:00:00 AM
' String with a month and day component only: '8/18' --> 8/18/2018 12:00:00 AM
' String with a time component only: '07:22:16' --> 2/22/2018 7:22:16 AM
' String with an hour and AM/PM designator only: '7 PM' --> 2/22/2018 7:00:00 PM
' UTC string that conforms to ISO 8601: '2018-08-18T07:22:16.0000000Z' --> 8/18/2018 12:22:16 AM
' Non-UTC string that conforms to ISO 8601: '2018-08-18T07:22:16.0000000-07:00' --> 8/18/2018 7:22:16 AM
' String that conforms to RFC 1123: 'Sat, 18 Aug 2018 07:22:16 GMT' --> 8/18/2018 12:22:16 AM
' String with date, time, and time zone information: '08/18/2018 07:22:16 -5:00' --> 8/18/2018 5:22:16 AM
Als de invoertekenreeks een schrikkeldag in een schrikkeljaar vertegenwoordigt in de kalender die wordt gebruikt door de parseringsmethode (zie Parsing en culturele conventies), parseert de Parse methode de tekenreeks met succes. Als de invoertekenreeks een schrikkeldag in een niet-schrikkeljaar vertegenwoordigt, genereert de methode een FormatException.
Omdat de methode probeert Parse de tekenreeksweergave van een datum en tijd te parseren met behulp van de opmaakregels van de huidige of een opgegeven cultuur, kan het parseren van een tekenreeks in verschillende culturen mislukken. Als u een specifieke datum- en tijdnotatie wilt parseren op verschillende landinstellingen, gebruikt u een van de overbelastingen van de DateTime.ParseExact methode en geeft u een indelingsaanduiding op.
Parseren en culturele conventies
Alle overbelastingen van de Parse methode zijn cultuurgevoelig, tenzij de tekenreeks die moet worden geparseerd (die in de volgende tabel wordt vertegenwoordigd s ) voldoet aan het ISO 8601-patroon. De parseringsbewerking maakt gebruik van de opmaakgegevens in een DateTimeFormatInfo object dat als volgt wordt afgeleid:
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.
| Als u belt | En provider is |
Opmaakgegevens zijn afgeleid van |
|---|---|---|
| Parse(String) | - | De huidige cultuur (DateTimeFormatInfo.CurrentInfo eigenschap) |
| Parse(String, IFormatProvider) of Parse(String, IFormatProvider, DateTimeStyles) | een DateTimeFormatInfo object | Het opgegeven DateTimeFormatInfo object |
| Parse(String, IFormatProvider) of Parse(String, IFormatProvider, DateTimeStyles) | null |
De huidige cultuur (DateTimeFormatInfo.CurrentInfo eigenschap) |
| Parse(String, IFormatProvider) of Parse(String, IFormatProvider, DateTimeStyles) | een CultureInfo object | De CultureInfo.DateTimeFormat eigenschap |
| Parse(String, IFormatProvider) of Parse(String, IFormatProvider, DateTimeStyles) | Aangepaste IFormatProvider implementatie | De methode IFormatProvider.GetFormat |
Wanneer opmaakgegevens worden afgeleid van een DateTimeFormatInfo object, definieert de DateTimeFormatInfo.Calendar eigenschap de kalender die wordt gebruikt in de parseringsbewerking.
Als u een datum- en tijdtekenreeks parseert met behulp van een DateTimeFormatInfo object met aangepaste instellingen die afwijken van die van een standaardcultuur, gebruikt u de ParseExact methode in plaats van de Parse methode om de kans op een geslaagde conversie te verbeteren. Een niet-standaardtekenreeks voor datum en tijd kan ingewikkeld en moeilijk te parseren zijn. De Parse methode probeert een tekenreeks te parseren met verschillende impliciete parseringspatronen, die allemaal mislukken. Voor de ParseExact methode moet u daarentegen expliciet een of meer exacte parseringspatronen aanwijzen die waarschijnlijk zullen slagen. Zie de sectie DateTimeFormatInfo en Dynamische gegevens in het DateTimeFormatInfo onderwerp voor meer informatie.
Important
Houd er rekening mee dat de opmaakconventies voor een bepaalde cultuur dynamisch zijn en kunnen worden gewijzigd. Dit betekent dat parseringsbewerkingen die afhankelijk zijn van de opmaakconventies van de standaardcultuur (huidige) cultuur of die een IFormatProvider object opgeven dat een andere cultuur vertegenwoordigt dan de invariante cultuur onverwacht mislukt als een van de volgende situaties optreedt:
- De cultuurspecifieke gegevens zijn gewijzigd tussen primaire of secundaire versies van het .NET Framework of als gevolg van een update van de bestaande versie van het .NET Framework.
- De cultuurspecifieke gegevens weerspiegelen gebruikersvoorkeuren, die kunnen variëren van machine tot machine of sessie tot sessie.
- De cultuurspecifieke gegevens vertegenwoordigen een vervangende cultuur die de instellingen van een standaardcultuur of een aangepaste cultuur overschrijft.
Om de problemen bij het parseren van gegevens en tijdtekenreeksen die zijn gekoppeld aan wijzigingen in culturele gegevens te voorkomen, kunt u datum- en tijdtekenreeksen parseren met behulp van de invariante cultuur, of u kunt de ParseExact of TryParseExact methode aanroepen en de exacte notatie van de tekenreeks opgeven die moet worden geparseerd. Als u datum- en tijdgegevens serialiseert en deserialiseert, kunt u de opmaakconventies van de invariante cultuur gebruiken of u kunt de DateTime waarde serialiseren en deserialiseren in een binaire indeling.
Zie de sectie Dynamische cultuurgegevens in het CultureInfo onderwerp en de sectie Persistenting DateTime values in het DateTime onderwerp voor meer informatie.
Elementen van parseren en stijl
Alle Parse overbelastingen negeren voorloop-, binnenste of volgspaties in de invoertekenreeks (die wordt vertegenwoordigd door s in de volgende tabel). De datum en tijd kunnen worden gehaakt met een paar voorloop- en volgtekens ('#', U+0023) en kunnen worden gevolgd met een of meer NULL-tekens (U+0000).
Daarnaast heeft de Parse(String, IFormatProvider, DateTimeStyles) overbelasting een styles parameter die bestaat uit een of meer leden van de DateTimeStyles opsomming. Deze parameter definieert hoe s moet worden geïnterpreteerd en hoe de parseringsbewerking moet worden geconverteerd s naar een datum en tijd. In de volgende tabel wordt het effect van elk DateTimeStyles lid op de parseringsbewerking beschreven.
| Element van DateTimeStyles | Effect op conversie |
|---|---|
| AdjustToUniversal | Parseert en converteert s deze indien nodig als volgt naar UTC:- Als s een tijdzone-offset bevat of geen s tijdzone-informatie bevat, maar styles de AssumeLocal vlag bevat, parseert de methode de tekenreeks, worden aanroepen aangeroepen ToUniversalTime om de geretourneerde DateTime waarde te converteren naar UTC en wordt de Kind eigenschap ingesteld op DateTimeKind.Utc.- Als s wordt aangegeven dat deze UTC vertegenwoordigt of als s deze geen tijdzone-informatie bevat, maar styles de AssumeUniversal vlag bevat, parseert de methode de tekenreeks, voert geen tijdzoneconversie 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 | Deze waarde wordt genegeerd. Binnenruimte is altijd toegestaan in de datum- en tijdelementen van s. |
| AllowLeadingWhite | Deze waarde wordt genegeerd. Voorloopspaties zijn altijd toegestaan in de datum- en tijdelementen van s. |
| AllowTrailingWhite | Deze waarde wordt genegeerd. Volgspaties zijn altijd toegestaan in de datum- en tijdelementen van s. |
| AllowWhiteSpaces | Hiermee wordt aangegeven dat s leidende, interne en volgspaties kan bevatten. Dit is het standaardgedrag. Het kan niet worden overschreven door een meer beperkende DateTimeStyles opsommingswaarde op te leveren, zoals None. |
| AssumeLocal | Hiermee geeft u op dat als s er geen tijdzonegegevens zijn, lokale tijd wordt aangenomen. Tenzij de AdjustToUniversal vlag aanwezig is, wordt de Kind eigenschap van de geretourneerde DateTime waarde ingesteld op DateTimeKind.Local. |
| AssumeUniversal | Hiermee geeft u op dat als s er geen tijdzonegegevens zijn, UTC wordt aangenomen. Tenzij de 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. |
| None | Hoewel geldig, wordt deze waarde genegeerd. |
| RoundtripKind | Voor tekenreeksen die tijdzone-informatie bevatten, probeert u te voorkomen dat een datum- en tijdtekenreeks wordt geconverteerd naar een waarde die een DateTime lokale tijd vertegenwoordigt waarop Kind de eigenschap is ingesteld DateTimeKind.Local. Normaal gesproken wordt een dergelijke tekenreeks gemaakt door de DateTime.ToString(String) methode aan te roepen en door de standaardnotatieaanduiding 'o', 'r' of 'u' te gebruiken. |
De retourwaarde en DateTime.Kind
De DateTime.Parse overbelasting retourneert een DateTime waarde waarvan Kind de eigenschap tijdzone-informatie bevat. Het kan erop wijzen dat de tijd het volgende is:
- Coordinated Universal Time (System.DateTimeKind.Utc).
- De tijd in de lokale tijdzone (System.DateTimeKind.Local).
- De tijd in een onbekende tijdzone (System.DateTimeKind.Unspecified).
Over het algemeen retourneert de methode een DateTime object waarvan Kind de Parse eigenschap isDateTimeKind.Unspecified. De Parse methode kan echter ook tijdzoneconversie uitvoeren en de waarde van de Kind eigenschap anders instellen, afhankelijk van de waarden van de s en styles parameters:
| Als | Tijdzoneconversie | Soort eigenschap |
|---|---|---|
s bevat informatie over de tijdzone. |
De datum en tijd worden geconverteerd naar de tijd in de lokale tijdzone. | DateTimeKind.Local |
s bevat informatie over de tijdzone en styles bevat de AdjustToUniversal vlag. |
De datum en tijd worden geconverteerd naar Coordinated Universal Time (UTC). | DateTimeKind.Utc |
s bevat de Z- of GMT-tijdzone-ontwerpator en styles bevat de RoundtripKind vlag. |
De datum en tijd worden geïnterpreteerd als UTC. | DateTimeKind.Utc |
In het volgende voorbeeld worden datumtekenreeksen met tijdzonegegevens geconverteerd naar de tijd in de lokale tijdzone:
using System;
public class Example
{
public static void Main()
{
string[] dateStrings = {"2008-05-01T07:34:42-5:00",
"2008-05-01 7:34:42Z",
"Thu, 01 May 2008 07:34:42 GMT"};
foreach (string dateString in dateStrings)
{
DateTime convertedDate = DateTime.Parse(dateString);
Console.WriteLine($"Converted {dateString} to {convertedDate.Kind} time {convertedDate}");
}
}
}
// These calls to the DateTime.Parse method display the following output:
// Converted 2008-05-01T07:34:42-5:00 to Local time 5/1/2008 5:34:42 AM
// Converted 2008-05-01 7:34:42Z to Local time 5/1/2008 12:34:42 AM
// Converted Thu, 01 May 2008 07:34:42 GMT to Local time 5/1/2008 12:34:42 AM
open System
let dateStrings =
[ "2008-05-01T07:34:42-5:00"
"2008-05-01 7:34:42Z"
"Thu, 01 May 2008 07:34:42 GMT" ]
for dateString in dateStrings do
let convertedDate = DateTime.Parse dateString
printfn $"Converted {dateString} to {convertedDate.Kind} time {convertedDate}"
// These calls to the DateTime.Parse method display the following output:
// Converted 2008-05-01T07:34:42-5:00 to Local time 5/1/2008 5:34:42 AM
// Converted 2008-05-01 7:34:42Z to Local time 5/1/2008 12:34:42 AM
// Converted Thu, 01 May 2008 07:34:42 GMT to Local time 5/1/2008 12:34:42 AM
Module Example
Public Sub Main()
Dim dateStrings() As String = {"2008-05-01T07:34:42-5:00",
"2008-05-01 7:34:42Z",
"Thu, 01 May 2008 07:34:42 GMT"}
For Each dateStr In dateStrings
Dim convertedDate As Date = Date.Parse(dateStr)
Console.WriteLine($"Converted {dateStr} to {convertedDate.Kind} time {convertedDate}")
Next
End Sub
End Module
' These calls to the DateTime.Parse method display the following output:
' Converted 2008-05-01T07:34:42-5:00 to Local time 5/1/2008 5:34:42 AM
' Converted 2008-05-01 7:34:42Z to Local time 5/1/2008 12:34:42 AM
' Converted Thu, 01 May 2008 07:34:42 GMT to Local time 5/1/2008 12:34:42 AM
U kunt ook de waarde van de eigenschap van een datum en tijd Kind behouden tijdens een opmaak- en parseringsbewerking met behulp van de DateTimeStyles.RoundtripKind vlag. In het volgende voorbeeld ziet u hoe de vlag van RoundtripKind invloed is op de parseringsbewerking voor DateTime waarden die worden geconverteerd naar tekenreeksen met behulp van de notatieaanduiding 'o', 'r' of 'u'.
string[] formattedDates = { "2008-09-15T09:30:41.7752486-07:00",
"2008-09-15T09:30:41.7752486Z",
"2008-09-15T09:30:41.7752486",
"2008-09-15T09:30:41.7752486-04:00",
"Mon, 15 Sep 2008 09:30:41 GMT" };
foreach (string formattedDate in formattedDates)
{
Console.WriteLine(formattedDate);
DateTime roundtripDate = DateTime.Parse(formattedDate, null,
DateTimeStyles.RoundtripKind);
Console.WriteLine($" With RoundtripKind flag: {roundtripDate} {roundtripDate.Kind} time.");
DateTime noRoundtripDate = DateTime.Parse(formattedDate, null,
DateTimeStyles.None);
Console.WriteLine($" Without RoundtripKind flag: {noRoundtripDate} {noRoundtripDate.Kind} time.");
}
// The example displays the following output:
// 2008-09-15T09:30:41.7752486-07:00
// With RoundtripKind flag: 9/15/2008 9:30:41 AM Local time.
// Without RoundtripKind flag: 9/15/2008 9:30:41 AM Local time.
// 2008-09-15T09:30:41.7752486Z
// With RoundtripKind flag: 9/15/2008 9:30:41 AM Utc time.
// Without RoundtripKind flag: 9/15/2008 2:30:41 AM Local time.
// 2008-09-15T09:30:41.7752486
// With RoundtripKind flag: 9/15/2008 9:30:41 AM Unspecified time.
// Without RoundtripKind flag: 9/15/2008 9:30:41 AM Unspecified time.
// 2008-09-15T09:30:41.7752486-04:00
// With RoundtripKind flag: 9/15/2008 6:30:41 AM Local time.
// Without RoundtripKind flag: 9/15/2008 6:30:41 AM Local time.
// Mon, 15 Sep 2008 09:30:41 GMT
// With RoundtripKind flag: 9/15/2008 9:30:41 AM Utc time.
// Without RoundtripKind flag: 9/15/2008 2:30:41 AM Local time.
let formattedDates =
[ "2008-09-15T09:30:41.7752486-07:00"
"2008-09-15T09:30:41.7752486Z"
"2008-09-15T09:30:41.7752486"
"2008-09-15T09:30:41.7752486-04:00"
"Mon, 15 Sep 2008 09:30:41 GMT" ]
for formattedDate in formattedDates do
printfn $"{formattedDate}"
let roundtripDate = DateTime.Parse(formattedDate, null, DateTimeStyles.RoundtripKind)
printfn $" With RoundtripKind flag: {roundtripDate} {roundtripDate.Kind} time."
let noRoundtripDate = DateTime.Parse(formattedDate, null, DateTimeStyles.None)
printfn $" Without RoundtripKind flag: {noRoundtripDate} {noRoundtripDate.Kind} time."
// The example displays the following output:
// 2008-09-15T09:30:41.7752486-07:00
// With RoundtripKind flag: 9/15/2008 9:30:41 AM Local time.
// Without RoundtripKind flag: 9/15/2008 9:30:41 AM Local time.
// 2008-09-15T09:30:41.7752486Z
// With RoundtripKind flag: 9/15/2008 9:30:41 AM Utc time.
// Without RoundtripKind flag: 9/15/2008 2:30:41 AM Local time.
// 2008-09-15T09:30:41.7752486
// With RoundtripKind flag: 9/15/2008 9:30:41 AM Unspecified time.
// Without RoundtripKind flag: 9/15/2008 9:30:41 AM Unspecified time.
// 2008-09-15T09:30:41.7752486-04:00
// With RoundtripKind flag: 9/15/2008 6:30:41 AM Local time.
// Without RoundtripKind flag: 9/15/2008 6:30:41 AM Local time.
// Mon, 15 Sep 2008 09:30:41 GMT
// With RoundtripKind flag: 9/15/2008 9:30:41 AM Utc time.
// Without RoundtripKind flag: 9/15/2008 2:30:41 AM Local time.
Dim formattedDates() = { "2008-09-15T09:30:41.7752486-07:00",
"2008-09-15T09:30:41.7752486Z",
"2008-09-15T09:30:41.7752486",
"2008-09-15T09:30:41.7752486-04:00",
"Mon, 15 Sep 2008 09:30:41 GMT" }
For Each formattedDate In formattedDates
Console.WriteLine(formattedDate)
Dim roundtripDate = DateTime.Parse(formattedDate, Nothing,
DateTimeStyles.RoundtripKind)
Console.WriteLine($" With RoundtripKind flag: {roundtripDate} {roundtripDate.Kind} time.")
Dim noRoundtripDate = DateTime.Parse(formattedDate, Nothing, DateTimeStyles.None)
Console.WriteLine($" Without RoundtripKind flag: {noRoundtripDate} {noRoundtripDate.Kind} time.")
Next
' The example displays the following output:
' 2008-09-15T09:30:41.7752486-07:00
' With RoundtripKind flag: 9/15/2008 9:30:41 AM Local time.
' Without RoundtripKind flag: 9/15/2008 9:30:41 AM Local time.
' 2008-09-15T09:30:41.7752486Z
' With RoundtripKind flag: 9/15/2008 9:30:41 AM Utc time.
' Without RoundtripKind flag: 9/15/2008 2:30:41 AM Local time.
' 2008-09-15T09:30:41.7752486
' With RoundtripKind flag: 9/15/2008 9:30:41 AM Unspecified time.
' Without RoundtripKind flag: 9/15/2008 9:30:41 AM Unspecified time.
' 2008-09-15T09:30:41.7752486-04:00
' With RoundtripKind flag: 9/15/2008 6:30:41 AM Local time.
' Without RoundtripKind flag: 9/15/2008 6:30:41 AM Local time.
' Mon, 15 Sep 2008 09:30:41 GMT
' With RoundtripKind flag: 9/15/2008 9:30:41 AM Utc time.
' Without RoundtripKind flag: 9/15/2008 2:30:41 AM Local time.
Parse(String)
Converteert de tekenreeksweergave van een datum en tijd naar het DateTime equivalent ervan met behulp van de conventies van de huidige cultuur.
public:
static DateTime Parse(System::String ^ s);
public static DateTime Parse(string s);
static member Parse : string -> DateTime
Public Shared Function Parse (s As String) As DateTime
Parameters
- s
- String
Een tekenreeks die een datum en tijd bevat die moet worden geconverteerd. Zie de tekenreeks die u wilt parseren voor meer informatie.
Retouren
Een object dat gelijk is aan de datum en tijd in s.
Uitzonderingen
s is null.
s bevat geen geldige tekenreeksweergave van een datum en tijd.
Voorbeelden
In het volgende voorbeeld wordt de tekenreeksweergave van verschillende datum- en tijdwaarden geparseerd op:
Gebruik de standaardindelingsprovider, die de opmaakconventies biedt van de huidige cultuur van de computer die wordt gebruikt om de voorbeelduitvoer te produceren. De uitvoer uit dit voorbeeld weerspiegelt de opmaakconventies van de en-US cultuur.
Met behulp van de standaardstijlwaarde, dat wil AllowWhiteSpaceswel .
Hiermee wordt de FormatException uitzondering verwerkt die wordt gegenereerd wanneer de methode de tekenreeksweergave van een datum en tijd probeert te parseren met behulp van een aantal opmaakconventies van andere cultuur. Ook ziet u hoe u een datum- en tijdwaarde kunt parseren die geen gebruik maakt van de opmaakconventies van de huidige cultuur.
using System;
using System.Globalization;
public class DateTimeParser
{
public static void Main()
{
// Assume the current culture is en-US.
// The date is February 16, 2008, 12 hours, 15 minutes and 12 seconds.
// Use standard en-US date and time value
DateTime dateValue;
string dateString = "2/16/2008 12:15:12 PM";
try {
dateValue = DateTime.Parse(dateString);
Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue);
}
catch (FormatException) {
Console.WriteLine("Unable to convert '{0}'.", dateString);
}
// Reverse month and day to conform to the fr-FR culture.
// The date is February 16, 2008, 12 hours, 15 minutes and 12 seconds.
dateString = "16/02/2008 12:15:12";
try {
dateValue = DateTime.Parse(dateString);
Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue);
}
catch (FormatException) {
Console.WriteLine("Unable to convert '{0}'.", dateString);
}
// Call another overload of Parse to successfully convert string
// formatted according to conventions of fr-FR culture.
try {
dateValue = DateTime.Parse(dateString, new CultureInfo("fr-FR", false));
Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue);
}
catch (FormatException) {
Console.WriteLine("Unable to convert '{0}'.", dateString);
}
// Parse string with date but no time component.
dateString = "2/16/2008";
try {
dateValue = DateTime.Parse(dateString);
Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue);
}
catch (FormatException) {
Console.WriteLine("Unable to convert '{0}'.", dateString);
}
}
}
// The example displays the following output to the console:
// '2/16/2008 12:15:12 PM' converted to 2/16/2008 12:15:12 PM.
// Unable to convert '16/02/2008 12:15:12'.
// '16/02/2008 12:15:12' converted to 2/16/2008 12:15:12 PM.
// '2/16/2008' converted to 2/16/2008 12:00:00 AM.
open System
open System.Globalization
[<EntryPoint>]
let main _ =
// Assume the current culture is en-US.
// The date is February 16, 2008, 12 hours, 15 minutes and 12 seconds.
// Use standard en-US date and time value
let dateString = "2/16/2008 12:15:12 PM"
try
let dateValue = DateTime.Parse dateString
printfn $"'{dateString}' converted to {dateValue}."
with :? FormatException ->
printfn $"Unable to convert '{dateString}'."
// Reverse month and day to conform to the fr-FR culture.
// The date is February 16, 2008, 12 hours, 15 minutes and 12 seconds.
let dateString = "16/02/2008 12:15:12"
try
let dateValue = DateTime.Parse dateString
printfn $"'{dateString}' converted to {dateValue}."
with :? FormatException ->
Console.WriteLine("Unable to convert '{0}'.", dateString)
// Call another overload of Parse to successfully convert string
// formatted according to conventions of fr-FR culture.
try
let dateValue = DateTime.Parse(dateString, CultureInfo("fr-FR", false))
printfn $"'{dateString}' converted to {dateValue}."
with :? FormatException ->
printfn $"Unable to convert '{dateString}'."
// Parse string with date but no time component.
let dateString = "2/16/2008"
try
let dateValue = DateTime.Parse dateString
printfn $"'{dateString}' converted to {dateValue}."
with :? FormatException ->
printfn $"Unable to convert '{dateString}'."
0
// The example displays the following output to the console:
// '2/16/2008 12:15:12 PM' converted to 2/16/2008 12:15:12 PM.
// Unable to convert '16/02/2008 12:15:12'.
// '16/02/2008 12:15:12' converted to 2/16/2008 12:15:12 PM.
// '2/16/2008' converted to 2/16/2008 12:00:00 AM.
Imports System.Globalization
Class DateTimeParser
Public Shared Sub Main()
' Assume the current culture is en-US.
' The date is February 16, 2008, 12 hours, 15 minutes and 12 seconds.
' Use standard en-US date and time value
Dim dateValue As Date
Dim dateString As String = "2/16/2008 12:15:12 PM"
Try
dateValue = Date.Parse(dateString)
Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue)
Catch e As FormatException
Console.WriteLine("Unable to convert '{0}'.", dateString)
End Try
' Reverse month and day to conform to the fr-FR culture.
' The date is February 16, 2008, 12 hours, 15 minutes and 12 seconds.
dateString = "16/02/2008 12:15:12"
Try
dateValue = Date.Parse(dateString)
Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue)
Catch e As FormatException
Console.WriteLine("Unable to convert '{0}'.", dateString)
End Try
' Call another overload of Parse to successfully convert string
' formatted according to conventions of fr-FR culture.
Try
dateValue = Date.Parse(dateString, New CultureInfo("fr-FR", False))
Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue)
Catch e As FormatException
Console.WriteLine("Unable to convert '{0}'.", dateString)
End Try
' Parse string with date but no time component.
dateString = "2/16/2008"
Try
dateValue = Date.Parse(dateString)
Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue)
Catch e As FormatException
Console.WriteLine("Unable to convert '{0}'.", dateString)
End Try
End Sub
End Class
' The example displays the following output to the console:
' '2/16/2008 12:15:12 PM' converted to 2/16/2008 12:15:12 PM.
' Unable to convert '16/02/2008 12:15:12'.
' '16/02/2008 12:15:12' converted to 2/16/2008 12:15:12 PM.
' '2/16/2008' converted to 2/16/2008 12:00:00 AM.
Opmerkingen
Als s tijdzone-informatie bevat, retourneert deze methode een DateTime waarde waarvan Kind de eigenschap is DateTimeKind.Local en de datum en tijd in s lokale tijd converteert. Anders wordt er geen tijdzoneconversie uitgevoerd en wordt een DateTime waarde geretourneerd waarvan Kind de eigenschap is DateTimeKind.Unspecified.
Deze overbelasting probeert te parseren s met behulp van de opmaakconventies van de huidige cultuur. De huidige cultuur wordt aangegeven door de CurrentCulture accommodatie. Als u een tekenreeks wilt parseren met behulp van de opmaakconventies van een specifieke cultuur, roept u de Parse(String, IFormatProvider) of de Parse(String, IFormatProvider, DateTimeStyles) overloads aan.
Deze overbelasting probeert te parseren s met behulp van DateTimeStyles.AllowWhiteSpaces stijl.
Zie ook
- TryParse
- CultureInfo
- DateTimeFormatInfo
- Parsing Date and Time Strings in the .NET Framework
- Standaardnotatietekenreeksen voor datum en tijd
- Aangepaste datum- en tijdnotatietekenreeksen
Van toepassing op
Parse(String, IFormatProvider)
Converteert de tekenreeksweergave van een datum en tijd naar het DateTime equivalent ervan met behulp van cultuurspecifieke notatiegegevens.
public:
static DateTime Parse(System::String ^ s, IFormatProvider ^ provider);
public static DateTime Parse(string s, IFormatProvider provider);
static member Parse : string * IFormatProvider -> DateTime
Public Shared Function Parse (s As String, provider As IFormatProvider) As DateTime
Parameters
- s
- String
Een tekenreeks die een datum en tijd bevat die moet worden geconverteerd. Zie de tekenreeks die u wilt parseren voor meer informatie.
- provider
- IFormatProvider
Een object dat cultuurspecifieke indelingsinformatie over slevert. Zie Parseren en culturele conventies
Retouren
Een object dat gelijk is aan de datum en tijd die is opgenomen in s zoals opgegeven door provider.
Uitzonderingen
s is null.
s bevat geen geldige tekenreeksweergave van een datum en tijd.
Voorbeelden
In het volgende voorbeeld wordt een matrix met datumtekenreeksen geparseerd met behulp van de conventies van de en-US, fr-FRen de-DE culturen. Het laat zien dat de tekenreeksweergaven van één datum anders kunnen worden geïnterpreteerd in verschillende culturen.
using System;
using System.Globalization;
public class ParseDate
{
public static void Main()
{
// Define cultures to be used to parse dates.
CultureInfo[] cultures = {CultureInfo.CreateSpecificCulture("en-US"),
CultureInfo.CreateSpecificCulture("fr-FR"),
CultureInfo.CreateSpecificCulture("de-DE")};
// Define string representations of a date to be parsed.
string[] dateStrings = {"01/10/2009 7:34 PM",
"10.01.2009 19:34",
"10-1-2009 19:34" };
// Parse dates using each culture.
foreach (CultureInfo culture in cultures)
{
DateTime dateValue;
Console.WriteLine("Attempted conversions using {0} culture.",
culture.Name);
foreach (string dateString in dateStrings)
{
try {
dateValue = DateTime.Parse(dateString, culture);
Console.WriteLine(" Converted '{0}' to {1}.",
dateString, dateValue.ToString("f", culture));
}
catch (FormatException) {
Console.WriteLine(" Unable to convert '{0}' for culture {1}.",
dateString, culture.Name);
}
}
Console.WriteLine();
}
}
}
// The example displays the following output to the console:
// Attempted conversions using en-US culture.
// Converted '01/10/2009 7:34 PM' to Saturday, January 10, 2009 7:34 PM.
// Converted '10.01.2009 19:34' to Thursday, October 01, 2009 7:34 PM.
// Converted '10-1-2009 19:34' to Thursday, October 01, 2009 7:34 PM.
//
// Attempted conversions using fr-FR culture.
// Converted '01/10/2009 7:34 PM' to jeudi 1 octobre 2009 19:34.
// Converted '10.01.2009 19:34' to samedi 10 janvier 2009 19:34.
// Converted '10-1-2009 19:34' to samedi 10 janvier 2009 19:34.
//
// Attempted conversions using de-DE culture.
// Converted '01/10/2009 7:34 PM' to Donnerstag, 1. Oktober 2009 19:34.
// Converted '10.01.2009 19:34' to Samstag, 10. Januar 2009 19:34.
// Converted '10-1-2009 19:34' to Samstag, 10. Januar 2009 19:34.
open System
open System.Globalization
// Define cultures to be used to parse dates.
let cultures =
[ CultureInfo.CreateSpecificCulture "en-US"
CultureInfo.CreateSpecificCulture "fr-FR"
CultureInfo.CreateSpecificCulture "de-DE" ]
// Define string representations of a date to be parsed.
let dateStrings =
[ "01/10/2009 7:34 PM"
"10.01.2009 19:34"
"10-1-2009 19:34" ]
// Parse dates using each culture.
for culture in cultures do
printfn $"Attempted conversions using {culture.Name} culture."
for dateString in dateStrings do
try
let dateValue = DateTime.Parse(dateString, culture)
printfn $""" Converted '{dateString}' to {dateValue.ToString("f", culture)}."""
with :? FormatException ->
printfn $" Unable to convert '{dateString}' for culture {culture.Name}."
printfn ""
// The example displays the following output to the console:
// Attempted conversions using en-US culture.
// Converted '01/10/2009 7:34 PM' to Saturday, January 10, 2009 7:34 PM.
// Converted '10.01.2009 19:34' to Thursday, October 01, 2009 7:34 PM.
// Converted '10-1-2009 19:34' to Thursday, October 01, 2009 7:34 PM.
//
// Attempted conversions using fr-FR culture.
// Converted '01/10/2009 7:34 PM' to jeudi 1 octobre 2009 19:34.
// Converted '10.01.2009 19:34' to samedi 10 janvier 2009 19:34.
// Converted '10-1-2009 19:34' to samedi 10 janvier 2009 19:34.
//
// Attempted conversions using de-DE culture.
// Converted '01/10/2009 7:34 PM' to Donnerstag, 1. Oktober 2009 19:34.
// Converted '10.01.2009 19:34' to Samstag, 10. Januar 2009 19:34.
// Converted '10-1-2009 19:34' to Samstag, 10. Januar 2009 19:34.
Imports System.Globalization
Module ParseDate
Public Sub Main()
' Define cultures to be used to parse dates.
Dim cultures() As CultureInfo = {CultureInfo.CreateSpecificCulture("en-US"), _
CultureInfo.CreateSpecificCulture("fr-FR"), _
CultureInfo.CreateSpecificCulture("de-DE")}
' Define string representations of a date to be parsed.
Dim dateStrings() As String = {"01/10/2009 7:34 PM", _
"10.01.2009 19:34", _
"10-1-2009 19:34" }
' Parse dates using each culture.
For Each culture In cultures
Dim dateValue As Date
Console.WriteLine("Attempted conversions using {0} culture.", culture.Name)
For Each dateString As String In dateStrings
Try
dateValue = Date.Parse(dateString, culture)
Console.WriteLine(" Converted '{0}' to {1}.", _
dateString, dateValue.ToString("f", culture))
Catch e As FormatException
Console.WriteLine(" Unable to convert '{0}' for culture {1}.", _
dateString, culture.Name)
End Try
Next
Console.WriteLine()
Next
End Sub
End Module
' The example displays the following output to the console:
' Attempted conversions using en-US culture.
' Converted '01/10/2009 7:34 PM' to Saturday, January 10, 2009 7:34 PM.
' Converted '10.01.2009 19:34' to Thursday, October 01, 2009 7:34 PM.
' Converted '10-1-2009 19:34' to Thursday, October 01, 2009 7:34 PM.
'
' Attempted conversions using fr-FR culture.
' Converted '01/10/2009 7:34 PM' to jeudi 1 octobre 2009 19:34.
' Converted '10.01.2009 19:34' to samedi 10 janvier 2009 19:34.
' Converted '10-1-2009 19:34' to samedi 10 janvier 2009 19:34.
'
' Attempted conversions using de-DE culture.
' Converted '01/10/2009 7:34 PM' to Donnerstag, 1. Oktober 2009 19:34.
' Converted '10.01.2009 19:34' to Samstag, 10. Januar 2009 19:34.
' Converted '10-1-2009 19:34' to Samstag, 10. Januar 2009 19:34.
Opmerkingen
Als s tijdzone-informatie bevat, retourneert deze methode een DateTime waarde waarvan Kind de eigenschap is DateTimeKind.Local en de datum en tijd in s lokale tijd converteert. Anders wordt er geen tijdzoneconversie uitgevoerd en wordt een DateTime waarde geretourneerd waarvan Kind de eigenschap is DateTimeKind.Unspecified.
Deze overbelasting probeert te parseren s met behulp van de DateTimeStyles.AllowWhiteSpaces stijl.
Zie ook
- TryParse
- CultureInfo
- DateTimeFormatInfo
- Parsing Date and Time Strings in the .NET Framework
- Standaardnotatietekenreeksen voor datum en tijd
- Aangepaste datum- en tijdnotatietekenreeksen
Van toepassing op
Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)
Converteert een geheugenspanne die een tekenreeksweergave van een datum en tijd bevat naar het DateTime equivalent ervan met behulp van cultuurspecifieke notatiegegevens en een opmaakstijl.
public static DateTime Parse(ReadOnlySpan<char> s, IFormatProvider provider = default, System.Globalization.DateTimeStyles styles = System.Globalization.DateTimeStyles.None);
static member Parse : ReadOnlySpan<char> * IFormatProvider * System.Globalization.DateTimeStyles -> DateTime
Public Shared Function Parse (s As ReadOnlySpan(Of Char), Optional provider As IFormatProvider = Nothing, Optional styles As DateTimeStyles = System.Globalization.DateTimeStyles.None) As DateTime
Parameters
- s
- ReadOnlySpan<Char>
Het geheugenbereik dat de tekenreeks bevat die moet worden geparseerd. Zie de tekenreeks die u wilt parseren voor meer informatie.
- provider
- IFormatProvider
Een object dat cultuurspecifieke indelingsinformatie over slevert. Zie Parseren en culturele conventies
- styles
- DateTimeStyles
Een bitsgewijze combinatie van de opsommingswaarden die de stijlelementen aanduidt waarin de parseringsbewerking kan worden s uitgevoerd en die bepaalt 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.
Retouren
Een object dat gelijk is aan de datum en tijd in s, zoals opgegeven door provider en styles.
Uitzonderingen
s bevat geen geldige tekenreeksweergave van een datum en tijd.
styles bevat een ongeldige combinatie van DateTimeStyles waarden. Bijvoorbeeld zowel AssumeLocal als AssumeUniversal.
Van toepassing op
Parse(String, IFormatProvider, DateTimeStyles)
Converteert de tekenreeksweergave van een datum en tijd naar het DateTime equivalent ervan met behulp van cultuurspecifieke notatiegegevens en een opmaakstijl.
public:
static DateTime Parse(System::String ^ s, IFormatProvider ^ provider, System::Globalization::DateTimeStyles styles);
public static DateTime Parse(string s, IFormatProvider provider, System.Globalization.DateTimeStyles styles);
static member Parse : string * IFormatProvider * System.Globalization.DateTimeStyles -> DateTime
Public Shared Function Parse (s As String, provider As IFormatProvider, styles As DateTimeStyles) As DateTime
Parameters
- s
- String
Een tekenreeks die een datum en tijd bevat die moet worden geconverteerd. Zie de tekenreeks die u wilt parseren voor meer informatie.
- provider
- IFormatProvider
Een object dat cultuurspecifieke opmaakinformatie over slevert. Zie Parseren en culturele conventies
- styles
- DateTimeStyles
Een bitsgewijze combinatie van de opsommingswaarden die de stijlelementen aanduidt waarin de parseringsbewerking kan worden s uitgevoerd en die bepaalt 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.
Retouren
Een object dat gelijk is aan de datum en tijd in s, zoals opgegeven door provider en styles.
Uitzonderingen
s is null.
s bevat geen geldige tekenreeksweergave van een datum en tijd.
styles bevat een ongeldige combinatie van DateTimeStyles waarden. Bijvoorbeeld zowel AssumeLocal als AssumeUniversal.
Voorbeelden
In het volgende voorbeeld ziet u de Parse(String, IFormatProvider, DateTimeStyles) methode en wordt de waarde van de Kind eigenschap van de resulterende DateTime waarden weergegeven.
using System;
using System.Globalization;
public class ParseDateExample
{
public static void Main()
{
string dateString;
CultureInfo culture ;
DateTimeStyles styles;
DateTime result;
// Parse a date and time with no styles.
dateString = "03/01/2009 10:00 AM";
culture = CultureInfo.CreateSpecificCulture("en-US");
styles = DateTimeStyles.None;
try {
result = DateTime.Parse(dateString, culture, styles);
Console.WriteLine("{0} converted to {1} {2}.",
dateString, result, result.Kind.ToString());
}
catch (FormatException) {
Console.WriteLine("Unable to convert {0} to a date and time.",
dateString);
}
// Parse the same date and time with the AssumeLocal style.
styles = DateTimeStyles.AssumeLocal;
try {
result = DateTime.Parse(dateString, culture, styles);
Console.WriteLine("{0} converted to {1} {2}.",
dateString, result, result.Kind.ToString());
}
catch (FormatException) {
Console.WriteLine("Unable to convert {0} to a date and time.", dateString);
}
// Parse a date and time that is assumed to be local.
// This time is five hours behind UTC. The local system's time zone is
// eight hours behind UTC.
dateString = "2009/03/01T10:00:00-5:00";
styles = DateTimeStyles.AssumeLocal;
try {
result = DateTime.Parse(dateString, culture, styles);
Console.WriteLine("{0} converted to {1} {2}.",
dateString, result, result.Kind.ToString());
}
catch (FormatException) {
Console.WriteLine("Unable to convert {0} to a date and time.", dateString);
}
// Attempt to convert a string in improper ISO 8601 format.
dateString = "03/01/2009T10:00:00-5:00";
try {
result = DateTime.Parse(dateString, culture, styles);
Console.WriteLine("{0} converted to {1} {2}.",
dateString, result, result.Kind.ToString());
}
catch (FormatException) {
Console.WriteLine("Unable to convert {0} to a date and time.", dateString);
}
// Assume a date and time string formatted for the fr-FR culture is the local
// time and convert it to UTC.
dateString = "2008-03-01 10:00";
culture = CultureInfo.CreateSpecificCulture("fr-FR");
styles = DateTimeStyles.AdjustToUniversal | DateTimeStyles.AssumeLocal;
try {
result = DateTime.Parse(dateString, culture, styles);
Console.WriteLine("{0} converted to {1} {2}.",
dateString, result, result.Kind.ToString());
}
catch (FormatException) {
Console.WriteLine("Unable to convert {0} to a date and time.", dateString);
}
}
}
// The example displays the following output to the console:
// 03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Unspecified.
// 03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Local.
// 2009/03/01T10:00:00-5:00 converted to 3/1/2009 7:00:00 AM Local.
// Unable to convert 03/01/2009T10:00:00-5:00 to a date and time.
// 2008-03-01 10:00 converted to 3/1/2008 6:00:00 PM Utc.
open System
open System.Globalization
[<EntryPoint>]
let main _ =
// Parse a date and time with no styles.
let dateString = "03/01/2009 10:00 AM"
let culture = CultureInfo.CreateSpecificCulture "en-US"
let styles = DateTimeStyles.None
try
let result = DateTime.Parse(dateString, culture, styles)
printfn $"{dateString} converted to {result} {result.Kind}."
with :? FormatException ->
printfn $"Unable to convert {dateString} to a date and time."
// Parse the same date and time with the AssumeLocal style.
let styles = DateTimeStyles.AssumeLocal
try
let result = DateTime.Parse(dateString, culture, styles)
printfn $"{dateString} converted to {result} {result.Kind}."
with :? FormatException ->
printfn $"Unable to convert {dateString} to a date and time."
// Parse a date and time that is assumed to be local.
// This time is five hours behind UTC. The local system's time zone is
// eight hours behind UTC.
let dateString = "2009/03/01T10:00:00-5:00"
let styles = DateTimeStyles.AssumeLocal
try
let result = DateTime.Parse(dateString, culture, styles)
printfn $"{dateString} converted to {result} {result.Kind}."
with :? FormatException ->
printfn $"Unable to convert {dateString} to a date and time."
// Attempt to convert a string in improper ISO 8601 format.
let dateString = "03/01/2009T10:00:00-5:00"
try
let result = DateTime.Parse(dateString, culture, styles)
printfn $"{dateString} converted to {result} {result.Kind}."
with :? FormatException ->
printfn $"Unable to convert {dateString} to a date and time."
// Assume a date and time string formatted for the fr-FR culture is the local
// time and convert it to UTC.
let dateString = "2008-03-01 10:00"
let culture = CultureInfo.CreateSpecificCulture "fr-FR"
let styles = DateTimeStyles.AdjustToUniversal ||| DateTimeStyles.AssumeLocal
try
let result = DateTime.Parse(dateString, culture, styles)
printfn $"{dateString} converted to {result} {result.Kind}."
with :? FormatException ->
printfn $"Unable to convert {dateString} to a date and time."
0
// The example displays the following output to the console:
// 03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Unspecified.
// 03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Local.
// 2009/03/01T10:00:00-5:00 converted to 3/1/2009 7:00:00 AM Local.
// Unable to convert 03/01/2009T10:00:00-5:00 to a date and time.
// 2008-03-01 10:00 converted to 3/1/2008 6:00:00 PM Utc.
Imports System.Globalization
Module ParseDateExample
Public Sub Main()
Dim dateString As String
Dim culture As CultureInfo
Dim styles As DateTimeStyles
Dim result As DateTime
' Parse a date and time with no styles.
dateString = "03/01/2009 10:00 AM"
culture = CultureInfo.CreateSpecificCulture("en-US")
styles = DateTimeStyles.None
Try
result = DateTime.Parse(dateString, culture, styles)
Console.WriteLine("{0} converted to {1} {2}.", _
dateString, result, result.Kind.ToString())
Catch e As FormatException
Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
End Try
' Parse the same date and time with the AssumeLocal style.
styles = DateTimeStyles.AssumeLocal
Try
result = DateTime.Parse(dateString, culture, styles)
Console.WriteLine("{0} converted to {1} {2}.", _
dateString, result, result.Kind.ToString())
Catch e As FormatException
Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
End Try
' Parse a date and time that is assumed to be local.
' This time is five hours behind UTC. The local system's time zone is
' eight hours behind UTC.
dateString = "2009/03/01T10:00:00-5:00"
styles = DateTimeStyles.AssumeLocal
Try
result = DateTime.Parse(dateString, culture, styles)
Console.WriteLine("{0} converted to {1} {2}.", _
dateString, result, result.Kind.ToString())
Catch e As FormatException
Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
End Try
' Attempt to convert a string in improper ISO 8601 format.
dateString = "03/01/2009T10:00:00-5:00"
Try
result = DateTime.Parse(dateString, culture, styles)
Console.WriteLine("{0} converted to {1} {2}.", _
dateString, result, result.Kind.ToString())
Catch e As FormatException
Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
End Try
' Assume a date and time string formatted for the fr-FR culture is the local
' time and convert it to UTC.
dateString = "2008-03-01 10:00"
culture = CultureInfo.CreateSpecificCulture("fr-FR")
styles = DateTimeStyles.AdjustToUniversal Or DateTimeStyles.AssumeLocal
Try
result = DateTime.Parse(dateString, culture, styles)
Console.WriteLine("{0} converted to {1} {2}.", _
dateString, result, result.Kind.ToString())
Catch e As FormatException
Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
End Try
End Sub
End Module
'
' The example displays the following output to the console:
' 03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Unspecified.
' 03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Local.
' 2009/03/01T10:00:00-5:00 converted to 3/1/2009 7:00:00 AM Local.
' Unable to convert 03/01/2009T10:00:00-5:00 to a date and time.
' 2008-03-01 10:00 converted to 3/1/2008 6:00:00 PM Utc.
Opmerkingen
Deze methode overbelasting converteert de datum en tijd in s en stelt de Kind eigenschap van de geretourneerde DateTime waarde als volgt in:
| Als | Tijdzoneconversie | Soort eigenschap |
|---|---|---|
s bevat geen tijdzone-informatie. |
Geen. | DateTimeKind.Unspecified |
s bevat informatie over de tijdzone. |
Naar de tijd in de lokale tijdzone | DateTimeKind.Local |
s bevat informatie over de tijdzone en styles bevat de DateTimeStyles.AdjustToUniversal vlag. |
Naar Coordinated Universal Time (UTC) | DateTimeKind.Utc |
s bevat de Z- of GMT-tijdzone-ontwerpator en styles bevat de DateTimeStyles.RoundtripKind. |
Geen. | DateTimeKind.Utc |
Zie ook
- TryParse
- CultureInfo
- DateTimeFormatInfo
- Parsing Date and Time Strings in the .NET Framework
- Standaardnotatietekenreeksen voor datum en tijd
- Aangepaste datum- en tijdnotatietekenreeksen
- Procedure: Datum en tijd van retour