Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł zawiera dodatkowe uwagi dotyczące dokumentacji referencyjnej dla tego interfejsu API.
Metoda DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) analizuje ciąg, który może zawierać informacje o dacie, godzinie i strefie czasowej. Jest ona podobna do DateTime.Parse(String, IFormatProvider, DateTimeStyles) metody, z tą różnicą, że DateTime.TryParse(String, DateTime) metoda nie zgłasza wyjątku w przypadku niepowodzenia konwersji.
Ta metoda próbuje zignorować nierozpoznane dane i całkowicie przeanalizować ciąg wejściowy (s). Jeśli s zawiera godzinę, ale bez daty, metoda domyślnie zastępuje bieżącą datę lub, jeśli styles zawiera flagę NoCurrentDateDefault , zastępuje DateTime.Date.MinValue. Jeśli s zawiera datę, ale nie godzinę, 12:00 północ jest używana jako domyślny czas. Jeśli data jest obecna, ale to jej składnik roku składa się tylko z dwóch cyfr, konwertuje się na rok w bieżącym kalendarzu parametru provider na podstawie właściwości Calendar.TwoDigitYearMax. Wszelkie wiodące, wewnętrzne lub końcowe białe znaki w obiekcie s są ignorowane. Data i godzina mogą być oznaczone parą wiodących i końcowych znaków numeru ('#', U+0023) i mogą być zakończone jednym lub większą liczbą znaków NULL (U+0000).
Określone prawidłowe formaty elementów daty i godziny, a także nazwy i symbole używane w datach i godzinach, są definiowane przez provider parametr , który może być dowolny z następujących:
-
CultureInfo Obiekt reprezentujący kulturę, której formatowanie jest używane w parametrze
s. Obiekt DateTimeFormatInfo zwracany przez właściwość CultureInfo.DateTimeFormat definiuje formatowanie używane ws. -
DateTimeFormatInfo Obiekt, który definiuje formatowanie używane w programie
s. - Implementacja niestandardowa IFormatProvider . Metoda IFormatProvider.GetFormat zwraca DateTimeFormatInfo obiekt, który definiuje formatowanie używane w pliku
s.
Jeśli provider to null, używana jest bieżąca kultura.
Jeśli s jest ciągiem znaków reprezentującym dzień przestępny w roku przestępnym w bieżącym kalendarzu, metoda pomyślnie przeanalizuje s. Jeśli s jest ciągiem reprezentującym dzień przestępny w nieprzestępnym roku w bieżącym kalendarzu provider, operacja analizy kończy się niepowodzeniem, a metoda zwraca false.
Parametr styles definiuje dokładną interpretację przeanalizowanego ciągu i sposób obsługi operacji analizy. Może to być jeden lub więcej elementów wyliczenia DateTimeStyles, jak opisano w poniższej tabeli.
| Członek DateTimeStyles | Opis |
|---|---|
| AdjustToUniversal |
s Analizuje i, w razie potrzeby, konwertuje go na UTC. Jeśli s zawiera przesunięcie strefy czasowej lub jeśli s nie zawiera informacji o strefie czasowej, ale styles zawiera DateTimeStyles.AssumeLocal flagę, metoda analizuje ciąg, wywołuje ToUniversalTime konwersję zwróconej DateTime wartości na UTC i ustawia Kind właściwość na DateTimeKind.Utc. Jeśli s wskazuje, że reprezentuje utc lub jeśli s nie zawiera informacji o strefie czasowej, ale styles zawiera flagę DateTimeStyles.AssumeUniversal , metoda analizuje ciąg, nie wykonuje konwersji strefy czasowej na zwracaną DateTime wartość i ustawia Kind właściwość na DateTimeKind.Utcwartość . We wszystkich innych przypadkach flaga nie ma wpływu. |
| AllowInnerWhite | Mimo że jest prawidłowa, ta wartość jest ignorowana. Odstęp wewnętrzny jest dozwolony w elementach daty i godziny s. |
| AllowLeadingWhite | Mimo że jest prawidłowa, ta wartość jest ignorowana. Wiodące białe znaki są dozwolone w elementach daty i godziny s. |
| AllowTrailingWhite | Mimo że jest prawidłowa, ta wartość jest ignorowana. Końcowy biały znak jest dozwolony w elementach daty i godziny elementu s. |
| AllowWhiteSpaces | Określa, że s może zawierać wiodące, wewnętrzne i końcowe białe spacje. Jest to zachowanie domyślne. Nie można go zastąpić przez podanie bardziej restrykcyjnej DateTimeStyles wartości wyliczenia, takiej jak DateTimeStyles.None. |
| AssumeLocal | Określa, że jeśli s brakuje informacji o strefie czasowej, przyjmuje się, że reprezentuje czas lokalny. O ile flaga DateTimeStyles.AdjustToUniversal nie jest obecna, Kind właściwość zwróconej DateTime wartości jest ustawiona na DateTimeKind.Local. |
| AssumeUniversal | Określa, że jeśli s brakuje informacji o strefie czasowej, przyjmuje się, że reprezentuje utc. Jeśli flaga DateTimeStyles.AdjustToUniversal nie jest obecna, metoda konwertuje zwracaną DateTime wartość z czasu UTC na czas lokalny i ustawia jej Kind właściwość na DateTimeKind.Local. |
| None | Mimo że jest prawidłowa, ta wartość jest ignorowana. |
| RoundtripKind | Dla ciągów zawierających informacje o strefie czasowej, próbuje zapobiec konwersji ciągu daty i godziny na wartość DateTime z właściwością Kind ustawioną na DateTimeKind.Local. Zazwyczaj taki ciąg jest tworzony przez wywołanie DateTime.ToString(String) metody przy użyciu specyfikatorów formatu standardowego "o", "r" lub "u". |
Jeśli s nie zawiera informacji o strefie czasowej, metoda DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) zwraca wartość DateTime, której właściwość Kind ma wartość DateTimeKind.Unspecified, chyba że flaga styles wskazuje inaczej. Jeśli s zawiera informacje dotyczące strefy czasowej lub przesunięcia strefy czasowej, metoda DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) wykonuje wszelkie potrzebne konwersje czasu i zwraca jedną z następujących wartości:
- DateTime Wartość, której data i godzina odzwierciedlają czas lokalny i którego Kind właściwość to DateTimeKind.Local.
- Lub, jeśli
styleszawiera flagę AdjustToUniversal, wartość, której data i godzina odzwierciedlają czas UTC, a której właściwość DateTime to Kind.
To zachowanie można zastąpić za pomocą flagi DateTimeStyles.RoundtripKind .
Parsowanie kultur niestandardowych
Jeśli analizujesz ciąg daty i godziny wygenerowany dla kultury niestandardowej, użyj TryParseExact metody zamiast TryParse metody , aby poprawić prawdopodobieństwo, że operacja analizy powiedzie się. Niestandardowy ciąg znaków daty i czasu w danej kulturze może być skomplikowany i trudny do przeanalizowania. Metoda TryParse próbuje przeanalizować ciąg z kilkoma niejawnymi wzorcami analizy, z których wszystkie mogą zakończyć się niepowodzeniem. Z kolei metoda TryParseExact wymaga jawnego wyznaczenia co najmniej jednego dokładnego wzorca parsowania, który prawdopodobnie powiedzie się.
Aby uzyskać więcej informacji na temat kultur niestandardowych, zapoznaj się z klasą System.Globalization.CultureAndRegionInfoBuilder.