Sdílet prostřednictvím


Metoda System.DateTime.TryParse

Tento článek obsahuje doplňující poznámky k referenční dokumentaci pro toto rozhraní API.

Metoda DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) analyzuje řetězec, který může obsahovat informace o datu, čase a časovém pásmu. Podobá se DateTime.Parse(String, IFormatProvider, DateTimeStyles) metodě, s tím rozdílem, že DateTime.TryParse(String, DateTime) metoda nevyvolá výjimku, pokud převod selže.

Tato metoda se pokusí ignorovat nerozpoznaná data a úplně parsovat vstupní řetězec (s). Pokud s obsahuje čas, ale žádné datum, metoda ve výchozím nastavení nahradí aktuální datum nebo, pokud styles obsahuje NoCurrentDateDefault příznak, nahradí DateTime.Date.MinValue. Pokud s obsahuje datum, ale bez času, použije se jako výchozí čas půlnoc 12:00. Pokud je datum přítomno, ale jeho rok se skládá pouze ze dvou číslic, převede se na rok v provider aktuálním kalendáři parametru na základě hodnoty Calendar.TwoDigitYearMax vlastnosti. Všechny počáteční, vnitřní nebo koncové prázdné znaky s se ignorují. Datum a čas je možné vytvořit závorkou s párem počátečních a koncových znaků NUMBER SIGN ('#', U+0023) a může být na konci s jedním nebo více znaky NULL (U+0000).

Konkrétní platné formáty pro prvky data a času, stejně jako názvy a symboly používané v datech a časech, jsou definovány parametrem provider , který může být libovolný z následujících:

Pokud provider ano null, použije se aktuální jazyková verze.

Pokud s je řetězcové vyjádření přestupného dne v přestupném roce v aktuálním kalendáři, metoda se úspěšně parsuje s . Pokud s je řetězcové vyjádření přestupného dne v neskočném roce v aktuálním kalendáři provider, parse operace selže a metoda vrátí false.

Parametr styles definuje přesnou interpretaci analyzovaného řetězce a způsob zpracování operace analýzy. Může to být jeden nebo více členů výčtu DateTimeStyles , jak je popsáno v následující tabulce.

Člen DateTimeStyles Popis
AdjustToUniversal Parsuje s a v případě potřeby ho převede na UTC. Pokud s zahrnuje posun časového pásma nebo pokud s neobsahuje žádné informace o časovém pásmu, ale styles obsahuje DateTimeStyles.AssumeLocal příznak, metoda analyzuje řetězec, volání ToUniversalTime převést vrácenou DateTime hodnotu na UTC a nastaví Kind vlastnost na DateTimeKind.Utc. Pokud s označuje, že představuje UTC, nebo pokud s neobsahuje informace o časovém pásmu, ale styles obsahuje DateTimeStyles.AssumeUniversal příznak, metoda parsuje řetězec, neprovádí převod časového pásma na vrácenou DateTime hodnotu a nastaví Kind vlastnost na DateTimeKind.Utc. Ve všech ostatních případech nemá příznak žádný vliv.
AllowInnerWhite Přestože je tato hodnota platná, je ignorována. Vnitřní prázdné znaky jsou povoleny v prvech data a času .s
AllowLeadingWhite Přestože je tato hodnota platná, je ignorována. Počáteční prázdné znaky jsou povoleny v elementech data a času .s
AllowTrailingWhite Přestože je tato hodnota platná, je ignorována. Koncové prázdné znaky jsou povoleny v prvech sdata a času .
AllowWhiteSpaces Určuje, že s může obsahovat úvodní, vnitřní a koncové prázdné znaky. Toto je výchozí chování. Nelze jej přepsat zadáním přísnější DateTimeStyles hodnoty výčtu, například DateTimeStyles.None.
AssumeLocal Určuje, že pokud s chybí informace o časovém pásmu, předpokládá se, že představuje místní čas. DateTimeStyles.AdjustToUniversal Pokud není příznak přítomen, Kind vlastnost vrácená DateTime hodnota je nastavena na DateTimeKind.Local.
AssumeUniversal Určuje, že pokud s chybí informace o časovém pásmu, předpokládá se, že představuje UTC. DateTimeStyles.AdjustToUniversal Pokud není příznak přítomen, metoda převede vrácenou DateTime hodnotu z UTC na místní čas a nastaví jeho Kind vlastnost na DateTimeKind.Local.
None Přestože je tato hodnota platná, je ignorována.
RoundtripKind U řetězců, které obsahují informace o časovém pásmu, se pokusí zabránit převodu řetězce data a času na DateTime hodnotu s jeho Kind vlastností nastavenou na DateTimeKind.Local. Takový řetězec je obvykle vytvořen voláním DateTime.ToString(String) metody pomocí specifikátorů standardního formátu "o", "r" nebo "u".

Pokud s neobsahuje žádné informace o časovém pásmu DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) , metoda vrátí DateTime hodnotu, jejíž Kind vlastnost je DateTimeKind.Unspecified , pokud styles příznak indikuje jinak. Pokud s obsahuje informace o posunu časového pásma nebo časového pásma, DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) metoda provede jakýkoli nezbytný časový převod a vrátí jednu z následujících možností:

Toto chování lze přepsat příznakem DateTimeStyles.RoundtripKind .

Analýza vlastních jazykových verzí

Pokud parsujete řetězec data a času vygenerovaný pro vlastní jazykovou verzi, použijte TryParseExact místo metody metodu TryParse ke zlepšení pravděpodobnosti, že operace analýzy bude úspěšná. Řetězec data a času vlastní jazykové verze může být složitý a obtížně parsovatelný. Metoda TryParse se pokusí analyzovat řetězec s několika implicitními vzory analýzy, z nichž všechny můžou selhat. Naproti tomu TryParseExact metoda vyžaduje, abyste explicitně určili jeden nebo více přesných vzorů analýzy, které budou pravděpodobně úspěšné.

Další informace o vlastních jazykových verzích najdete ve System.Globalization.CultureAndRegionInfoBuilder třídě.