Dela via


System.DateTime.TryParse-metod

Anmärkning

Den här artikeln innehåller ytterligare kommentarer till referensdokumentationen för det här API:et.

Metoden DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) parsar en sträng som kan innehålla information om datum, tid och tidszon. Det liknar DateTime.Parse(String, IFormatProvider, DateTimeStyles) metoden, förutom att DateTime.TryParse(String, DateTime) metoden inte utlöser ett undantag om konverteringen misslyckas.

Den här metoden försöker ignorera okända data och parsa indatasträngen (s) helt. Om s innehåller en tid men inget datum ersätter metoden som standard det med det aktuella datumet, eller om styles innehåller NoCurrentDateDefault-flaggan, ersätter den det med DateTime.Date.MinValue. Om s innehåller ett datum men ingen tid används midnatt 12:00 som standardtid. Om ett datum finns men dess årskomponent endast består av två siffror konverteras det till ett år i provider parameterns aktuella kalender baserat på värdet för Calendar.TwoDigitYearMax egenskapen. Alla inledande, inre eller avslutande blankstegstecken i s ignoreras. Datum och tid kan omslutas av ett par inledande och avslutande NUMBER SIGN-tecken ('#', U+0023) och kan följas av ett eller flera NULL-tecken (U+0000).

Specifika giltiga format för datum- och tidselement, samt namn och symboler som används i datum och tider, definieras av parametern provider , vilket kan vara något av följande:

Om provider är nullanvänds den aktuella kulturen.

Om s är strängrepresentationen av en skottdag under ett skottår i den aktuella kalendern, parserar metoden s framgångsrikt. Om s är strängrepresentationen av en skottdag under ett icke-skottår i den aktuella kalendern för providermisslyckas parsningsåtgärden och metoden returnerar false.

Parametern styles definierar den exakta tolkningen av den parsade strängen och hur parsningsåtgärden ska hantera den. Det kan vara en eller flera medlemmar i DateTimeStyles uppräkningen, enligt beskrivningen i följande tabell.

DateTimeStyles-medlem Beskrivning
AdjustToUniversal Parsar s och konverterar den vid behov till UTC. Om s innehåller en tidszonsförskjutning, eller om s den inte innehåller någon tidszonsinformation men styles innehåller DateTimeStyles.AssumeLocal flaggan, parsar metoden strängen, anropar ToUniversalTime för att konvertera det returnerade DateTime värdet till UTC och anger Kind egenskapen till DateTimeKind.Utc. Om s anger att den representerar UTC, eller om s den inte innehåller tidszonsinformation men styles innehåller DateTimeStyles.AssumeUniversal flaggan, parsar metoden strängen, utför ingen tidszonskonvertering på det returnerade DateTime värdet och anger Kind egenskapen till DateTimeKind.Utc. I alla andra fall har flaggan ingen effekt.
AllowInnerWhite Även om värdet är giltigt ignoreras det. Interna vita utrymmen tillåts i datum- och tidselementen i s.
AllowLeadingWhite Även om värdet är giltigt ignoreras det. Inledande blanksteg tillåts i datum- och tidselementen i s.
AllowTrailingWhite Även om värdet är giltigt ignoreras det. Avslutande tomt utrymme tillåts i datum- och tidselementen i s.
AllowWhiteSpaces Anger att s kan innehålla inledande, inre och avslutande mellanrum. Det här är standardbeteendet. Det kan inte åsidosättas genom att ange ett mer restriktivt DateTimeStyles uppräkningsvärde, DateTimeStyles.Nonetill exempel .
AssumeLocal Anger att om s det inte finns någon tidszonsinformation antas det representera en lokal tid. Om inte DateTimeStyles.AdjustToUniversal flaggan finns, sätts Kind-egenskapen för det returnerade DateTime-värdet till DateTimeKind.Local.
AssumeUniversal Anger att om s det inte finns någon tidszonsinformation antas det representera UTC. DateTimeStyles.AdjustToUniversal Om inte flaggan finns konverterar metoden det returnerade DateTime värdet från UTC till lokal tid och anger dess Kind egenskap till DateTimeKind.Local.
None Även om värdet är giltigt ignoreras det.
RoundtripKind För strängar som innehåller tidszonsinformation försöker du förhindra konverteringen av en datum- och tidssträng till ett DateTime värde med egenskapen Kind inställd på DateTimeKind.Local. Vanligtvis skapas en sådan sträng genom att anropa DateTime.ToString(String) metoden med standardformatsspecificerarna "o", "r" eller "u".

Om s innehåller ingen tidszonsinformation DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) returnerar metoden ett DateTime värde vars Kind egenskap är DateTimeKind.Unspecified såvida inte en styles flagga anger något annat. Om s innehåller information om tidszons- eller tidszonsförskjutningsinformation utför metoden eventuell nödvändig tidskonvertering och returnerar något av följande:

Det här beteendet kan åsidosättas med hjälp DateTimeStyles.RoundtripKind av flaggan.

Hantera anpassade kulturer

Om du parsar en datum- och tidssträng som genererats för en anpassad kultur använder du TryParseExact metoden i stället för TryParse metoden för att förbättra sannolikheten för att parsningsåtgärden lyckas. En anpassad kultur datum- och tidssträng kan vara komplicerad och svår att parsa. Metoden TryParse försöker parsa en sträng med flera implicita parsningsmönster, som alla kan misslyckas. Metoden kräver däremot TryParseExact att du uttryckligen anger ett eller flera exakta parsningsmönster som sannolikt kommer att lyckas.

Mer information om anpassade kulturer finns i System.Globalization.CultureAndRegionInfoBuilder klassen .