System.DateTime.TryParse metódus

Megjegyzés:

Ez a cikk kiegészítő megjegyzéseket tartalmaz az API referenciadokumentációjához.

A DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) metódus egy olyan sztringet elemez, amely dátum-, idő- és időzónaadatokat tartalmazhat. Hasonló a DateTime.Parse(String, IFormatProvider, DateTimeStyles) metódushoz, azzal a kivétellel, hogy a DateTime.TryParse(String, DateTime) metódus nem ad kivételt, ha az átalakítás sikertelen.

Ez a metódus megpróbálja figyelmen kívül hagyni a nem felismert adatokat, és teljesen elemzi a bemeneti sztringet (s). Ha s egy időpontot tartalmaz, de nincs dátum, akkor a metódus alapértelmezés szerint az aktuális dátumot helyettesíti, vagy ha styles a jelölőt NoCurrentDateDefault is tartalmazza, akkor a helyettesítő DateTime.Date.MinValue. Ha s dátumot tartalmaz, de nincs idő, akkor a rendszer az alapértelmezett időpontként az éjféli 12:00-t használja. Ha egy dátum jelen van, de az év komponense csak két számjegyből áll, akkor a dátumot a provider paraméter jelenlegi naptárának évévé alakítják Calendar.TwoDigitYearMax tulajdonság értéke alapján. A bevezető, belső vagy záró szóköz karakterek s figyelmen kívül lesznek hagyva. A dátum és az idő elején és végén SZÁMJEL karakterek ('#', U+0023) szerepelnek, és követheti őket egy vagy több NULL karakter (U+0000).

A dátum- és időelemek konkrét érvényes formátumait, valamint a dátumokban és időpontokban használt neveket és szimbólumokat a provider paraméter határozza meg, amely az alábbiak bármelyike lehet:

Ha provider van null, a jelenlegi kultúrát használják.

Ha s a szökőnap sztring formája egy szökőévben az aktuális naptárban, a metódus sikeresen értelmezi s. Ha s egy szökőnap sztringje egy nem szökőévben az aktuális naptárban provider, az elemzési művelet meghiúsul, és a metódus visszatér false.

A styles paraméter határozza meg az elemzési sztring pontos értelmezését, valamint azt, hogy az elemzési művelet hogyan kezelje azt. Ez az egy vagy több tagja lehet a DateTimeStyles felsorolásnak, az alábbi táblázatban leírtak szerint.

DateTimeStyles tagja Leírás
AdjustToUniversal s Elemzi és szükség esetén UTC-vé alakítja át. Ha s időzóna-eltolást tartalmaz, vagy ha s nem tartalmaz időzóna-információt, de styles tartalmazza a DateTimeStyles.AssumeLocal jelölőt, akkor a metódus elemzi a sztringet, meghívja ToUniversalTime a visszaadott DateTime érték UTC értékre konvertálását, és beállítja a Kind tulajdonságot DateTimeKind.Utc. Ha s azt jelzi, hogy utc értéket jelöl, vagy ha s nem tartalmaz időzóna-információt, de styles tartalmazza a DateTimeStyles.AssumeUniversal jelzőt, a metódus elemzi a sztringet, nem végez időzóna-átalakítást a visszaadott DateTime értéken, és a tulajdonságot a Kind következőre DateTimeKind.Utcállítja: . Minden más esetben a zászlónak nincs hatása.
AllowInnerWhite Bár érvényes, a rendszer figyelmen kívül hagyja ezt az értéket. A belső fehér tér a dátum- és időelemekben smegengedett.
AllowLeadingWhite Bár érvényes, a rendszer figyelmen kívül hagyja ezt az értéket. A kezdő szóköz a dátum- és időelemekben sengedélyezett.
AllowTrailingWhite Bár érvényes, a rendszer figyelmen kívül hagyja ezt az értéket. A követő szóköz a dátum- és időelemekben s engedélyezett.
AllowWhiteSpaces Megadja, hogy a s tartalmazhat kezdő, belső és záró szóközöket. Ez az alapértelmezett viselkedés. Nem írható felül szigorúbb DateTimeStyles enumerálási értékkel, mint például a DateTimeStyles.None.
AssumeLocal Azt adja meg, hogy ha s nem áll rendelkezésre időzóna-információ, akkor a rendszer azt feltételezi, hogy egy helyi időpontot jelöl. Ha nincs megadva a DateTimeStyles.AdjustToUniversal jelölő, a Kind visszaadott DateTime érték tulajdonsága a következőre DateTimeKind.Localvan állítva: .
AssumeUniversal Azt adja meg, hogy ha s nem áll rendelkezésre időzóna-információ, akkor feltételezzük, hogy az UTC-t jelöli. Ha nincs megadva a DateTimeStyles.AdjustToUniversal jelölő, a metódus a visszaadott DateTime értéket UTC-ről helyi időpontra konvertálja, és a tulajdonságát a következőre KindállítjaDateTimeKind.Local: .
None Bár érvényes, a rendszer figyelmen kívül hagyja ezt az értéket.
RoundtripKind Az időzóna-adatokat tartalmazó sztringek esetében megkísérli megakadályozni a dátum- és idősztringek olyan DateTime értékre való konvertálását, amelynek Kind tulajdonsága DateTimeKind.Local értékre van állítva. Az ilyen sztringek általában a DateTime.ToString(String) metódus meghívásával jönnek létre, az "o", "r" vagy "u" szabványos formátumjelölőt használva.

Ha s nem tartalmaz időzóna-információt, a DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) metódus olyan DateTime értéket ad vissza, amelynek Kind a tulajdonsága DateTimeKind.Unspecified , kivéve, ha egy styles jelölő másként nem jelez. Ha s időzóna- vagy időzóna-eltolásadatokat is tartalmaz, a metódus elvégzi a DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) szükséges időátalakítást, és az alábbiak egyikét adja vissza:

Ezt a viselkedést felülbíráltathatja a DateTimeStyles.RoundtripKind jelölő használatával.

Egyéni kultúrák elemzése

Ha egy egyéni kultúrához létrehozott dátum- és idősztringet elemez, a TryParseExact metódust használja a TryParse metódus helyett, hogy növelje annak valószínűségét, hogy az elemzési művelet sikeres lesz. Az egyéni kulturális dátum- és idősztringek bonyolultak és nehezen elemezhetők. A TryParse metódus több implicit elemzési mintával rendelkező sztringet próbál elemezni, amelyek mindegyike sikertelen lehet. Ezzel szemben a TryParseExact módszer megköveteli, hogy explicit módon jelöljön ki egy vagy több olyan pontos elemzési mintát, amely valószínűleg sikeres lesz.

Az egyéni kultúrákról további információkért nézd meg a System.Globalization.CultureAndRegionInfoBuilder osztályt.