Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 lze ohraničit dvojicí počátečních a koncových znaků MŘÍŽKA ('#', U+0023), a na konci může být ukončen jedním nebo více znaky NUL (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:
- Objekt CultureInfo, který představuje kulturu, jejíž formátování se používá v parametru
s
. Objekt DateTimeFormatInfo vrácený CultureInfo.DateTimeFormat vlastností definuje formátování použité vs
. - Objekt DateTimeFormatInfo , který definuje formátování použité v
s
. - Vlastní IFormatProvider implementace. Jeho IFormatProvider.GetFormat metoda vrátí DateTimeFormatInfo objekt, který definuje formátování použité v
s
.
Pokud provider
je 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 úspěšně parsuje s
. Pokud je s
řetězcovým vyjádřením přestupného dne v nepřestupném roce v aktuálním kalendáři provider
, analýza 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.
DateTimeStyles – člen | 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, zavolá ToUniversalTime k převezení vrácené DateTime hodnoty 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á vliv. |
AllowInnerWhite | I když je tato hodnota platná, tato hodnota se ignoruje. Vnitřní prázdné znaky jsou povoleny v prvcích data a času.s |
AllowLeadingWhite | I když je tato hodnota platná, tato hodnota se ignoruje. Počáteční prázdné znaky jsou povoleny v datech a časových elementech `s `. |
AllowTrailingWhite | I když je tato hodnota platná, tato hodnota se ignoruje. Koncové mezery jsou povoleny v prvcích data a času s . |
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. Pokud není příznak DateTimeStyles.AdjustToUniversal přítomen, vlastnost Kind vrácené hodnoty DateTime 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 | I když je tato hodnota platná, tato hodnota se ignoruje. |
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 časovém pásmu nebo posunu časového pásma, metoda DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) provede nezbytný časový převod a vrátí jednu z následujících možností:
- Hodnota DateTime , jejíž datum a čas odráží místní čas a jehož Kind vlastnost je DateTimeKind.Local.
- Nebo pokud
styles
obsahuje příznak AdjustToUniversal, hodnota DateTime, jejíž datum a čas odráží UTC a jehož vlastnost Kind je DateTimeKind.Utc.
Toto chování lze přepsat flagem DateTimeStyles.RoundtripKind.
Zpracování vlastních kulturních nastavení
Pokud parsujete řetězec data a času vygenerovaný pro vlastní jazykovou verzi, použijte metodu TryParseExact místo metody TryParse ke zvýšení pravděpodobnosti, že operace analýzy bude úspěšná. Řetězec data a času vlastní kultury může být složitý a obtížně interpretovatelný. 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ě.