DateTime.Parse Methode

Definitie

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?

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 provider gebruikt).

  • 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 styles argument 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 styles argument. 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:

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 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

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 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

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 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

Van toepassing op