DateTime.TryParseExact Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Konwertuje określoną reprezentację ciągu daty i godziny na jej DateTime odpowiednik. Format ciągu reprezentującego musi dokładnie pasować do wskazanego formatu. Metoda zwraca wartość wskazującą, czy konwersja powiodła się.
Przeciążenia
TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime) |
Konwertuje określoną reprezentację zakresu daty i godziny na jej DateTime odpowiednik przy użyciu określonego formatu, informacji o formacie specyficznym dla kultury i stylu. Format ciągu reprezentującego musi dokładnie pasować do wskazanego formatu. Metoda zwraca wartość wskazującą, czy konwersja powiodła się. |
TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles, DateTime) |
Konwertuje określony zakres znaków daty i godziny na równoważną DateTime i zwraca wartość wskazującą, czy konwersja zakończyła się pomyślnie. |
TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) |
Konwertuje określoną reprezentację ciągu daty i godziny na jej DateTime odpowiednik przy użyciu określonego formatu, informacji o formacie specyficznym dla kultury i stylu. Format ciągu reprezentującego musi dokładnie pasować do wskazanego formatu. Metoda zwraca wartość wskazującą, czy konwersja powiodła się. |
TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) |
Konwertuje określoną reprezentację ciągu daty i godziny na równoważną, DateTime używając określonej tablicy formatów, informacji o formacie specyficznym dla kultury i stylu. Format reprezentacji ciągu musi być dokładnie zgodny z co najmniej jednym z określonych formatów. Metoda zwraca wartość wskazującą, czy konwersja powiodła się. |
Uwagi
Ważne
Ery w japońskich kalendarzach opierają się na panowaniu cesarza i dlatego oczekuje się, że się zmienią. Na przykład 1 maja 2019 r. oznaczało początek ery Reiwa w JapaneseCalendar erze i JapaneseLunisolarCalendar. Taka zmiana ery wpływa na wszystkie aplikacje korzystające z tych kalendarzy. Aby uzyskać więcej informacji i określić, czy dotyczy to aplikacji, zobacz Obsługa nowej ery w kalendarzu japońskim na platformie .NET. Aby uzyskać informacje na temat testowania aplikacji w systemach Windows w celu zapewnienia gotowości do zmiany epoki, zobacz Przygotowanie aplikacji do zmiany ery japońskiej. Aby uzyskać informacje o funkcjach platformy .NET, które obsługują kalendarze z wieloma epokami i najlepsze rozwiązania dotyczące pracy z kalendarzami obsługującymi wiele epok, zobacz Praca z erami.
TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime)
- Źródło:
- DateTime.cs
- Źródło:
- DateTime.cs
- Źródło:
- DateTime.cs
Konwertuje określoną reprezentację zakresu daty i godziny na jej DateTime odpowiednik przy użyciu określonego formatu, informacji o formacie specyficznym dla kultury i stylu. Format ciągu reprezentującego musi dokładnie pasować do wskazanego formatu. Metoda zwraca wartość wskazującą, czy konwersja powiodła się.
public:
static bool TryParseExact(ReadOnlySpan<char> s, ReadOnlySpan<char> format, IFormatProvider ^ provider, System::Globalization::DateTimeStyles style, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParseExact (ReadOnlySpan<char> s, ReadOnlySpan<char> format, IFormatProvider? provider, System.Globalization.DateTimeStyles style, out DateTime result);
public static bool TryParseExact (ReadOnlySpan<char> s, ReadOnlySpan<char> format, IFormatProvider provider, System.Globalization.DateTimeStyles style, out DateTime result);
static member TryParseExact : ReadOnlySpan<char> * ReadOnlySpan<char> * IFormatProvider * System.Globalization.DateTimeStyles * DateTime -> bool
Public Shared Function TryParseExact (s As ReadOnlySpan(Of Char), format As ReadOnlySpan(Of Char), provider As IFormatProvider, style As DateTimeStyles, ByRef result As DateTime) As Boolean
Parametry
- s
- ReadOnlySpan<Char>
Zakres zawierający znaki reprezentujące datę i godzinę konwersji.
- format
- ReadOnlySpan<Char>
Wymagany format .s
- provider
- IFormatProvider
Obiekt, który dostarcza informacje o formatowaniu specyficznym dla kultury.s
- style
- DateTimeStyles
Bitowa kombinacja co najmniej jednej wartości wyliczenia, która wskazuje dozwolony format .s
- result
- DateTime
Gdy ta metoda zwraca wartość równoważną DateTime dacie i godzinie zawartej w s
elemencie , jeśli konwersja powiodła się lub DateTime.MinValue , jeśli konwersja nie powiodła się. Konwersja kończy się niepowodzeniem, jeśli s
parametr lub format
ma null
wartość , jest pustym ciągiem lub nie zawiera daty i godziny, która odpowiada wzorzecowi określonemu w format
elem. Ten parametr jest przekazywany jako niezainicjowany.
Zwraca
true
jeśli s
pomyślnie przekonwertowano; w przeciwnym razie . false
Dotyczy
TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles, DateTime)
- Źródło:
- DateTime.cs
- Źródło:
- DateTime.cs
- Źródło:
- DateTime.cs
Konwertuje określony zakres znaków daty i godziny na równoważną DateTime i zwraca wartość wskazującą, czy konwersja zakończyła się pomyślnie.
public:
static bool TryParseExact(ReadOnlySpan<char> s, cli::array <System::String ^> ^ formats, IFormatProvider ^ provider, System::Globalization::DateTimeStyles style, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParseExact (ReadOnlySpan<char> s, string?[]? formats, IFormatProvider? provider, System.Globalization.DateTimeStyles style, out DateTime result);
public static bool TryParseExact (ReadOnlySpan<char> s, string[] formats, IFormatProvider provider, System.Globalization.DateTimeStyles style, out DateTime result);
static member TryParseExact : ReadOnlySpan<char> * string[] * IFormatProvider * System.Globalization.DateTimeStyles * DateTime -> bool
Public Shared Function TryParseExact (s As ReadOnlySpan(Of Char), formats As String(), provider As IFormatProvider, style As DateTimeStyles, ByRef result As DateTime) As Boolean
Parametry
- s
- ReadOnlySpan<Char>
Zakres zawierający ciąg do analizy.
- formats
- String[]
Tablica dozwolonych formatów .s
- provider
- IFormatProvider
Obiekt, który dostarcza informacje o formatowaniu specyficznym dla kultury.s
- style
- DateTimeStyles
Bitowa kombinacja wartości wyliczenia definiujących sposób interpretowania przeanalizowanej daty w odniesieniu do bieżącej strefy czasowej lub bieżącej daty. Typową wartością do określenia jest None.
- result
- DateTime
Gdy ta metoda zwraca wartość równoważną DateTime dacie i godzinie zawartej w s
elemencie , jeśli konwersja powiodła się lub DateTime.MinValue , jeśli konwersja nie powiodła się. Konwersja kończy się niepowodzeniem, s
jeśli parametr ma null
wartość , ma Emptywartość lub nie zawiera prawidłowej reprezentacji ciągu daty i godziny. Ten parametr jest przekazywany jako niezainicjowany.
Zwraca
true
s
jeśli parametr został pomyślnie przekonwertowany; w przeciwnym razie . false
Dotyczy
TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime)
- Źródło:
- DateTime.cs
- Źródło:
- DateTime.cs
- Źródło:
- DateTime.cs
Konwertuje określoną reprezentację ciągu daty i godziny na jej DateTime odpowiednik przy użyciu określonego formatu, informacji o formacie specyficznym dla kultury i stylu. Format ciągu reprezentującego musi dokładnie pasować do wskazanego formatu. Metoda zwraca wartość wskazującą, czy konwersja powiodła się.
public:
static bool TryParseExact(System::String ^ s, System::String ^ format, IFormatProvider ^ provider, System::Globalization::DateTimeStyles style, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParseExact (string s, string format, IFormatProvider provider, System.Globalization.DateTimeStyles style, out DateTime result);
public static bool TryParseExact (string? s, string? format, IFormatProvider? provider, System.Globalization.DateTimeStyles style, out DateTime result);
static member TryParseExact : string * string * IFormatProvider * System.Globalization.DateTimeStyles * DateTime -> bool
Public Shared Function TryParseExact (s As String, format As String, provider As IFormatProvider, style As DateTimeStyles, ByRef result As DateTime) As Boolean
Parametry
- s
- String
Ciąg zawierający datę i godzinę konwersji.
- format
- String
Wymagany format .s
- provider
- IFormatProvider
Obiekt, który dostarcza informacje o formatowaniu specyficznym dla kultury.s
- style
- DateTimeStyles
Bitowa kombinacja co najmniej jednej wartości wyliczenia, która wskazuje dozwolony format .s
- result
- DateTime
Gdy ta metoda zwraca wartość równoważną DateTime dacie i godzinie zawartej w s
elemencie , jeśli konwersja powiodła się lub DateTime.MinValue , jeśli konwersja nie powiodła się. Konwersja kończy się niepowodzeniem, jeśli s
parametr lub format
ma null
wartość , jest pustym ciągiem lub nie zawiera daty i godziny, która odpowiada wzorzecowi określonemu w format
elem. Ten parametr jest przekazywany jako niezainicjowany.
Zwraca
true
jeśli s
pomyślnie przekonwertowano; w przeciwnym razie . false
Wyjątki
styles
jest nieprawidłową DateTimeStyles wartością.
-lub-
styles
zawiera nieprawidłową kombinację DateTimeStyles wartości (na przykład i AssumeLocalAssumeUniversal).
Przykłady
W poniższym przykładzie pokazano metodę DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) . Należy pamiętać, że ciąg "5/01/2009 8:30 AM" nie może zostać pomyślnie przeanalizowany, gdy styles
parametr jest równy, ponieważ spacje DateTimeStyles.None wiodące nie są dozwolone przez format
. Ponadto nie można pomyślnie przeanalizować ciągu "5/01/2009 09:00" z wartością "MM/dd/yyyyhh:mm", ponieważ ciąg daty nie poprzedza numeru miesiąca z wiodącym zerem, zgodnie format
z format
wymaganiami.
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
CultureInfo enUS = new CultureInfo("en-US");
string dateString;
DateTime dateValue;
// Parse date with no style flags.
dateString = " 5/01/2009 8:30 AM";
if (DateTime.TryParseExact(dateString, "g", enUS,
DateTimeStyles.None, out dateValue))
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
// Allow a leading space in the date string.
if (DateTime.TryParseExact(dateString, "g", enUS,
DateTimeStyles.AllowLeadingWhite, out dateValue))
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
// Use custom formats with M and MM.
dateString = "5/01/2009 09:00";
if (DateTime.TryParseExact(dateString, "M/dd/yyyy hh:mm", enUS,
DateTimeStyles.None, out dateValue))
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
// Allow a leading space in the date string.
if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm", enUS,
DateTimeStyles.None, out dateValue))
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
// Parse a string with time zone information.
dateString = "05/01/2009 01:30:42 PM -05:00";
if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS,
DateTimeStyles.None, out dateValue))
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
// Allow a leading space in the date string.
if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS,
DateTimeStyles.AdjustToUniversal, out dateValue))
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
// Parse a string representing UTC.
dateString = "2008-06-11T16:11:20.0904778Z";
if (DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture,
DateTimeStyles.None, out dateValue))
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
if (DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture,
DateTimeStyles.RoundtripKind, out dateValue))
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}
}
// The example displays the following output:
// ' 5/01/2009 8:30 AM' is not in an acceptable format.
// Converted ' 5/01/2009 8:30 AM' to 5/1/2009 8:30:00 AM (Unspecified).
// Converted '5/01/2009 09:00' to 5/1/2009 9:00:00 AM (Unspecified).
// '5/01/2009 09:00' is not in an acceptable format.
// Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 11:30:42 AM (Local).
// Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 6:30:42 PM (Utc).
// Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 9:11:20 AM (Local).
// Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 4:11:20 PM (Utc).
open System
open System.Globalization
[<EntryPoint>]
let main _ =
let enUS = CultureInfo "en-US"
// Parse date with no style flags.
let dateString = " 5/01/2009 8:30 AM"
match DateTime.TryParseExact(dateString, "g", enUS, DateTimeStyles.None) with
| true, dateValue ->
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
| _ ->
printfn $"'{dateString}' is not in an acceptable format."
// Allow a leading space in the date string.
match DateTime.TryParseExact(dateString, "g", enUS, DateTimeStyles.AllowLeadingWhite) with
| true, dateValue ->
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
| _ ->
printfn $"'{dateString}' is not in an acceptable format."
// Use custom formats with M and MM.
let dateString = "5/01/2009 09:00"
match DateTime.TryParseExact(dateString, "M/dd/yyyy hh:mm", enUS, DateTimeStyles.None) with
| true, dateValue ->
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
| _ ->
printfn $"'{dateString}' is not in an acceptable format."
// Allow a leading space in the date string.
match DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm", enUS, DateTimeStyles.None) with
| true, dateValue ->
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
| _ ->
printfn $"'{dateString}' is not in an acceptable format."
// Parse a string with time zone information.
let dateString = "05/01/2009 01:30:42 PM -05:00"
match DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, DateTimeStyles.None) with
| true, dateValue ->
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
| _ ->
printfn $"'{dateString}' is not in an acceptable format."
// Allow a leading space in the date string.
match DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, DateTimeStyles.AdjustToUniversal) with
| true, dateValue ->
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
| _ ->
printfn $"'{dateString}' is not in an acceptable format."
// Parse a string representing UTC.
let dateString = "2008-06-11T16:11:20.0904778Z"
match DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, DateTimeStyles.None) with
| true, dateValue ->
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
| _ ->
printfn $"'{dateString}' is not in an acceptable format."
match DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind) with
| true, dateValue ->
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
| _ ->
printfn $"'{dateString}' is not in an acceptable format."
0
// The example displays the following output:
// ' 5/01/2009 8:30 AM' is not in an acceptable format.
// Converted ' 5/01/2009 8:30 AM' to 5/1/2009 8:30:00 AM (Unspecified).
// Converted '5/01/2009 09:00' to 5/1/2009 9:00:00 AM (Unspecified).
// '5/01/2009 09:00' is not in an acceptable format.
// Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 11:30:42 AM (Local).
// Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 6:30:42 PM (Utc).
// Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 9:11:20 AM (Local).
// Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 4:11:20 PM (Utc).
Imports System.Globalization
Public Module Example
Public Sub Main()
Dim enUS As New CultureInfo("en-US")
Dim dateString As String
Dim dateValue As Date
' Parse date with no style flags.
dateString = " 5/01/2009 8:30 AM"
If Date.TryParseExact(dateString, "g", enUS, _
DateTimeStyles.None, dateValue) Then
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End If
' Allow a leading space in the date string.
If Date.TryParseExact(dateString, "g", enUS, _
DateTimeStyles.AllowLeadingWhite, dateValue) Then
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End If
' Use custom formats with M and MM.
dateString = "5/01/2009 09:00"
If Date.TryParseExact(dateString, "M/dd/yyyy hh:mm", enUS, _
DateTimeStyles.None, dateValue) Then
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End If
' Allow a leading space in the date string.
If Date.TryParseExact(dateString, "MM/dd/yyyy hh:mm", enUS, _
DateTimeStyles.None, dateValue) Then
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End If
' Parse a string with time zone information.
dateString = "05/01/2009 01:30:42 PM -05:00"
If Date.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, _
DateTimeStyles.None, dateValue) Then
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End If
' Allow a leading space in the date string.
If Date.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, _
DateTimeStyles.AdjustToUniversal, dateValue) Then
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End If
' Parse a string representing UTC.
dateString = "2008-06-11T16:11:20.0904778Z"
If Date.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, _
DateTimeStyles.None, dateValue) Then
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End If
If Date.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, _
DateTimeStyles.RoundtripKind, dateValue) Then
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End If
End Sub
End Module
' The example displays the following output:
' ' 5/01/2009 8:30 AM' is not in an acceptable format.
' Converted ' 5/01/2009 8:30 AM' to 5/1/2009 8:30:00 AM (Unspecified).
' Converted '5/01/2009 09:00' to 5/1/2009 9:00:00 AM (Unspecified).
' '5/01/2009 09:00' is not in an acceptable format.
' Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 11:30:42 AM (Local).
' Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 6:30:42 PM (Utc).
' Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 9:11:20 AM (Local).
' Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 4:11:20 PM (Utc).
Uwagi
Metoda DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) analizuje reprezentację ciągu daty, która musi być w formacie zdefiniowanym format
przez parametr . Jest ona podobna DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) do metody , z tą różnicą, że TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) metoda nie zgłasza wyjątku w przypadku niepowodzenia konwersji.
Parametr s
zawiera datę i godzinę analizy i musi być w formacie zdefiniowanym format
przez parametr . Jeśli elementy daty, godziny i strefy czasowej znajdują się w s
elemecie , muszą również być wyświetlane w kolejności określonej przez format
. Jeśli format
definiuje datę bez elementu godziny, a operacja analizowania powiedzie się, wynikowa DateTime wartość ma godzinę północy (00:00:00). Jeśli format
definiuje godzinę bez elementu daty i operacja analizy zakończy się powodzeniem, wartość wynikowa DateTime domyślnie ma datę lub ma datęDateTime.Now.Date
DateTime.MinValue.Date
, jeśli styles
zawiera flagę DateTimeStyles.NoCurrentDateDefault . Parametr style
określa, czy s
parametr może zawierać znaki wiodące, wewnętrzne lub końcowe odstępy.
Jeśli s
nie zawiera informacji o strefie czasowej, Kind właściwość zwróconego DateTime obiektu to DateTimeKind.Unspecified. To zachowanie można zmienić przy użyciu DateTimeStyles.AssumeLocal flagi , która zwraca DateTime wartość, której Kind właściwość to DateTimeKind.Local, lub za pomocą DateTimeStyles.AssumeUniversal flag i DateTimeStyles.AdjustToUniversal , która zwraca DateTime wartość, której Kind właściwość to DateTimeKind.Utc. Jeśli element zawiera informacje o strefie czasowej, czas jest konwertowany na czas lokalny, w razie potrzeby, a Kind właściwość zwróconego DateTime obiektu jest ustawiona na DateTimeKind.Localwartość . To zachowanie można zmienić przy użyciu DateTimeStyles.RoundtripKind flagi , aby nie konwertować uniwersalnego czasu koordynowanego (UTC) na czas lokalny i ustawić Kind właściwość na DateTimeKind.Utc.
Parametr format
zawiera wzorzec odpowiadający oczekiwanemu formatowi parametru s
. Wzorzec w parametrze format
składa się z co najmniej jednego specyfikatora formatu niestandardowego z tabeli Ciągi formatu daty i godziny niestandardowej lub jednego standardowego specyfikatora formatu, który identyfikuje wstępnie zdefiniowany wzorzec z tabeli Ciągi formatu daty i godziny standardowej .
Jeśli nie używasz separatorów daty lub godziny we wzorcu formatu niestandardowego, użyj niezmiennej kultury dla parametru provider
i najszerszej formy każdego specyfikatora formatu niestandardowego. Jeśli chcesz określić na przykład godziny we wzorcu, użyj szerszej formy „GG” zamiast węższej „G”.
Uwaga
Zamiast wymagać s
, aby operacja analizy zakończyła się pomyślnie, można wywołać metodę DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) i określić wiele dozwolonych formatów. Dzięki temu operacja analizy będzie bardziej prawdopodobna.
Określone symbole i ciągi daty i godziny (takie jak nazwy dni tygodnia w określonym języku) są s
definiowane przez provider
parametr , podobnie jak dokładny format s
, jeśli format
jest standardowym ciągiem specyfikatora formatu. Parametr provider
może być dowolnym z następujących:
CultureInfo Obiekt reprezentujący kulturę używaną do interpretowania
s
elementu . Obiekt DateTimeFormatInfo zwracany przez jego DateTimeFormat właściwość definiuje symbole i formatowanie w plikus
.DateTimeFormatInfo Obiekt, który definiuje format danych daty i godziny.
Implementacja niestandardowa IFormatProvider , której GetFormat metoda zwraca CultureInfo obiekt lub DateTimeFormatInfo obiekt, który dostarcza informacje o formatowaniu.
Jeśli provider
parametr ma null
wartość , CultureInfo używany jest obiekt odpowiadający bieżącej kulturze.
Parametr styles
zawiera jeden lub więcej elementów członkowskich DateTimeStyles wyliczenia, które określają, czy i gdzie nie zdefiniowano odstępu przez format
program , mogą pojawiać się w s
i które sterują dokładnym zachowaniem operacji analizy. W poniższej tabeli opisano, jak każdy element członkowski DateTimeStyles wyliczenia wpływa na działanie TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) metody.
Element członkowski DateTimeStyles | Opis |
---|---|
AdjustToUniversal |
s Analizuje i w razie potrzeby konwertuje go na czas UTC. Jeśli s zawiera przesunięcie strefy czasowej lub jeśli s nie zawiera informacji o strefie czasowej, ale styles zawiera flagę DateTimeStyles.AssumeLocal , metoda analizuje ciąg, wywołuje ToUniversalTime metodę , aby przekonwertować zwróconą DateTime wartość 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 zwróconą DateTime wartość i ustawia Kind właściwość na DateTimeKind.Utcwartość . We wszystkich innych przypadkach flaga nie wywiera żadnego wpływu. |
AllowInnerWhite | Określa, że odstęp niezdefiniowany przez format program może występować między dowolnym pojedynczym elementem daty lub godziny. |
AllowLeadingWhite | Określa, że białe znaki niezdefiniowane przez format program mogą pojawić się na początku .s |
AllowTrailingWhite | Określa, że biały znak niezdefiniowany przez format może być wyświetlany na końcu .s |
AllowWhiteSpaces | Określa, że s może zawierać wiodące, wewnętrzne i końcowe białe spacje niezdefiniowane przez format . |
AssumeLocal | Określa, że jeśli s brakuje informacji o strefie czasowej, przyjmuje się, że reprezentuje czas lokalny. Jeśli flaga DateTimeStyles.AdjustToUniversal nie jest obecna, Kind właściwość zwróconej DateTime wartości jest ustawiona na DateTimeKind.Localwartość . |
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. |
NoCurrentDateDefault | Jeśli s zawiera godzinę bez informacji o dacie, data zwracanej wartości jest ustawiona na wartość DateTime.MinValue.Date . |
None | Parametr s jest analizowany przy użyciu wartości domyślnych. Niedozwolone jest białe znaki inne niż obecne w format elemecie . Jeśli s brakuje składnika daty, data zwracanej DateTime wartości jest ustawiona na 1/1/0001. Jeśli s nie zawiera informacji o strefie czasowej, Kind właściwość zwróconego DateTime obiektu jest ustawiona na wartość DateTimeKind.Unspecified. Jeśli informacje o strefie czasowej są obecne w s programie , czas jest konwertowany na czas lokalny, a Kind właściwość zwróconego DateTime obiektu jest ustawiona na DateTimeKind.Localwartość . |
RoundtripKind | W przypadku ciągów zawierających informacje o strefie czasowej próbuje zapobiec konwersji na wartość z jej Kind właściwością ustawioną DateTime na DateTimeKind.Localwartość . Ta flaga zapobiega przede wszystkim konwersji czasu UTC na czas lokalny. |
Uwagi dotyczące wywoływania
W .NET Framework 4 metoda zwraca false
wartość , jeśli ciąg, który ma zostać przeanalizowany, TryParseExact zawiera składnik godziny i projektowania AM/PM, które nie są zgodne. W .NET Framework 3.5 i starszych wersjach projektowania AM/PM jest ignorowany.
Zobacz też
- ParseExact
- CultureInfo
- DateTimeFormatInfo
- Analizowanie ciągów daty i godziny w programie .NET Framework
- Standardowe ciągi formatu daty i godziny
- Niestandardowe ciągi formatu daty i godziny
Dotyczy
TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)
- Źródło:
- DateTime.cs
- Źródło:
- DateTime.cs
- Źródło:
- DateTime.cs
Konwertuje określoną reprezentację ciągu daty i godziny na równoważną, DateTime używając określonej tablicy formatów, informacji o formacie specyficznym dla kultury i stylu. Format reprezentacji ciągu musi być dokładnie zgodny z co najmniej jednym z określonych formatów. Metoda zwraca wartość wskazującą, czy konwersja powiodła się.
public:
static bool TryParseExact(System::String ^ s, cli::array <System::String ^> ^ formats, IFormatProvider ^ provider, System::Globalization::DateTimeStyles style, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParseExact (string s, string[] formats, IFormatProvider provider, System.Globalization.DateTimeStyles style, out DateTime result);
public static bool TryParseExact (string? s, string?[]? formats, IFormatProvider? provider, System.Globalization.DateTimeStyles style, out DateTime result);
static member TryParseExact : string * string[] * IFormatProvider * System.Globalization.DateTimeStyles * DateTime -> bool
Public Shared Function TryParseExact (s As String, formats As String(), provider As IFormatProvider, style As DateTimeStyles, ByRef result As DateTime) As Boolean
Parametry
- s
- String
Ciąg zawierający datę i godzinę, które należy przekształcić.
- formats
- String[]
Tablica dozwolonych formatów .s
- provider
- IFormatProvider
Obiekt, który dostarcza informacje o formacie specyficznym dla kultury.s
- style
- DateTimeStyles
Bitowa kombinacja wartości wyliczenia wskazująca dozwolony format .s
Typową wartością do określenia jest None.
- result
- DateTime
Gdy ta metoda zwraca wartość równoważną DateTime dacie i godzinie zawartej w s
elemencie , jeśli konwersja powiodła się lub DateTime.MinValue , jeśli konwersja nie powiodła się. Konwersja kończy się niepowodzeniem, jeśli element lub jest elementem s
formats
, jest pustym ciągiem lub format s
nie jest dokładnie taki jak określony przez co najmniej jeden z wzorców formatu w elemecie formats
.null
formats
s
Ten parametr jest przekazywany jako niezainicjowany.
Zwraca
true
s
jeśli parametr został pomyślnie przekonwertowany; w przeciwnym razie . false
Wyjątki
styles
jest nieprawidłową DateTimeStyles wartością.
-lub-
styles
zawiera nieprawidłową kombinację DateTimeStyles wartości (na przykład i AssumeLocalAssumeUniversal).
Przykłady
W poniższym przykładzie użyto DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) metody , aby upewnić się, że ciąg w wielu możliwych formatach można pomyślnie przeanalizować .
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
string[] formats= {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt",
"MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss",
"M/d/yyyy hh:mm tt", "M/d/yyyy hh tt",
"M/d/yyyy h:mm", "M/d/yyyy h:mm",
"MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm"};
string[] dateStrings = {"5/1/2009 6:32 PM", "05/01/2009 6:32:05 PM",
"5/1/2009 6:32:00", "05/01/2009 06:32",
"05/01/2009 06:32:00 PM", "05/01/2009 06:32:00"};
DateTime dateValue;
foreach (string dateString in dateStrings)
{
if (DateTime.TryParseExact(dateString, formats,
new CultureInfo("en-US"),
DateTimeStyles.None,
out dateValue))
Console.WriteLine("Converted '{0}' to {1}.", dateString, dateValue);
else
Console.WriteLine("Unable to convert '{0}' to a date.", dateString);
}
}
}
// The example displays the following output:
// Converted '5/1/2009 6:32 PM' to 5/1/2009 6:32:00 PM.
// Converted '05/01/2009 6:32:05 PM' to 5/1/2009 6:32:05 PM.
// Converted '5/1/2009 6:32:00' to 5/1/2009 6:32:00 AM.
// Converted '05/01/2009 06:32' to 5/1/2009 6:32:00 AM.
// Converted '05/01/2009 06:32:00 PM' to 5/1/2009 6:32:00 PM.
// Converted '05/01/2009 06:32:00' to 5/1/2009 6:32:00 AM.
open System
open System.Globalization
let formats=
[| "M/d/yyyy h:mm:ss tt"; "M/d/yyyy h:mm tt"
"MM/dd/yyyy hh:mm:ss"; "M/d/yyyy h:mm:ss"
"M/d/yyyy hh:mm tt"; "M/d/yyyy hh tt"
"M/d/yyyy h:mm"; "M/d/yyyy h:mm"
"MM/dd/yyyy hh:mm"; "M/dd/yyyy hh:mm" |]
let dateStrings =
[ "5/1/2009 6:32 PM"; "05/01/2009 6:32:05 PM"
"5/1/2009 6:32:00"; "05/01/2009 06:32"
"05/01/2009 06:32:00 PM"; "05/01/2009 06:32:00" ]
for dateString in dateStrings do
match DateTime.TryParseExact(dateString, formats, CultureInfo "en-US", DateTimeStyles.None) with
| true, dateValue ->
printfn $"Converted '{dateString}' to {dateValue}."
| _ ->
printfn $"Unable to convert '{dateString}' to a date."
// The example displays the following output:
// Converted '5/1/2009 6:32 PM' to 5/1/2009 6:32:00 PM.
// Converted '05/01/2009 6:32:05 PM' to 5/1/2009 6:32:05 PM.
// Converted '5/1/2009 6:32:00' to 5/1/2009 6:32:00 AM.
// Converted '05/01/2009 06:32' to 5/1/2009 6:32:00 AM.
// Converted '05/01/2009 06:32:00 PM' to 5/1/2009 6:32:00 PM.
// Converted '05/01/2009 06:32:00' to 5/1/2009 6:32:00 AM.
Imports System.Globalization
Public Module Example
Public Sub Main()
Dim formats() As String = {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt", _
"MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss", _
"M/d/yyyy hh:mm tt", "M/d/yyyy hh tt", _
"M/d/yyyy h:mm", "M/d/yyyy h:mm", _
"MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm"}
Dim dateStrings() As String = {"5/1/2009 6:32 PM", "05/01/2009 6:32:05 PM", _
"5/1/2009 6:32:00", "05/01/2009 06:32", _
"05/01/2009 06:32:00 PM", "05/01/2009 06:32:00"}
Dim dateValue As DateTime
For Each dateString As String In dateStrings
If Date.TryParseExact(dateString, formats, _
New CultureInfo("en-US"), _
DateTimeStyles.None, _
dateValue) Then
Console.WriteLine("Converted '{0}' to {1}.", dateString, dateValue)
Else
Console.WriteLine("Unable to convert '{0}' to a date.", dateString)
End If
Next
End Sub
End Module
' The example displays the following output:
' Converted '5/1/2009 6:32 PM' to 5/1/2009 6:32:00 PM.
' Converted '05/01/2009 6:32:05 PM' to 5/1/2009 6:32:05 PM.
' Converted '5/1/2009 6:32:00' to 5/1/2009 6:32:00 AM.
' Converted '05/01/2009 06:32' to 5/1/2009 6:32:00 AM.
' Converted '05/01/2009 06:32:00 PM' to 5/1/2009 6:32:00 PM.
' Converted '05/01/2009 06:32:00' to 5/1/2009 6:32:00 AM.
Uwagi
Metoda DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) analizuje reprezentację ciągu daty zgodnej z dowolnym wzorcem przypisanym do parametru formats
. Jest jak DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) metoda, z wyjątkiem TryParseExact metody nie zgłasza wyjątku, jeśli konwersja nie powiedzie się.
Parametr s
zawiera datę i godzinę analizy.
s
Jeśli parametr zawiera tylko godzinę i nie datę, bieżąca data jest używana, chyba że style
parametr zawiera flagęDateTimeStyles.NoCurrentDateDefault, w którym przypadku jest używana domyślna data (DateTime.Date.MinValue
).
s
Jeśli parametr zawiera tylko datę i godzinę, zostanie użyta północ (00:00:00). Parametr style
określa również, czy s
parametr może zawierać znaki wiodące, wewnętrzne lub końcowe odstępy inne niż dozwolone przez jeden z ciągów formatu w pliku formats
.
Jeśli s
nie zawiera informacji o strefie czasowej, Kind właściwość zwróconego DateTime obiektu to DateTimeKind.Unspecified. To zachowanie można zmienić przy użyciu DateTimeStyles.AssumeLocal flagi , która zwraca DateTime wartość, której Kind właściwość to DateTimeKind.Local, lub za pomocą DateTimeStyles.AssumeUniversal flag i DateTimeStyles.AdjustToUniversal , która zwraca DateTime wartość, której Kind właściwość to DateTimeKind.Utc. Jeśli element zawiera informacje o strefie czasowej, czas jest konwertowany na czas lokalny, w razie potrzeby, a Kind właściwość zwróconego DateTime obiektu jest ustawiona na DateTimeKind.Localwartość . To zachowanie można zmienić przy użyciu DateTimeStyles.RoundtripKind flagi , aby nie konwertować uniwersalnego czasu koordynowanego (UTC) na czas lokalny i ustawić Kind właściwość na DateTimeKind.Utc.
Parametr formats
zawiera tablicę wzorców, z których s
jedna musi być zgodna dokładnie, jeśli operacja analizy zakończy się pomyślnie. Wzorce w parametrze formats
składają się z co najmniej jednego specyfikatora formatu niestandardowego z tabeli Ciągi formatu daty i godziny niestandardowej lub jednego standardowego specyfikatora formatu, który identyfikuje wstępnie zdefiniowany wzorzec z tabeli Ciągi formatu daty i godziny standardowej.
Jeśli nie używasz separatorów daty lub godziny we wzorcu formatu niestandardowego, użyj niezmiennej kultury dla parametru provider
i najszerszej formy każdego specyfikatora formatu niestandardowego. Jeśli chcesz określić na przykład godziny we wzorcu, użyj szerszej formy „GG” zamiast węższej „G”.
Określone symbole i ciągi daty i godziny (takie jak nazwy dni tygodnia w określonym języku) są s
definiowane przez provider
parametr , podobnie jak dokładny format s
, jeśli format
jest standardowym ciągiem specyfikatora formatu. Parametr provider
może być dowolnym z następujących:
CultureInfo Obiekt reprezentujący kulturę używaną do interpretowania
s
elementu . Obiekt DateTimeFormatInfo zwracany przez jego DateTimeFormat właściwość definiuje symbole i formatowanie w plikus
.DateTimeFormatInfo Obiekt, który definiuje format danych daty i godziny.
Implementacja niestandardowa IFormatProvider , której GetFormat metoda zwraca CultureInfo obiekt lub DateTimeFormatInfo obiekt, który dostarcza informacje o formatowaniu.
Jeśli provider
parametr ma null
wartość , CultureInfo używany jest obiekt odpowiadający bieżącej kulturze.
Parametr styles
zawiera jeden lub więcej elementów członkowskich DateTimeStyles wyliczenia, które określają, czy i gdzie nie zdefiniowano odstępu przez format
program , mogą pojawiać się w s
i które sterują dokładnym zachowaniem operacji analizy. W poniższej tabeli opisano, jak każdy element członkowski DateTimeStyles wyliczenia wpływa na działanie TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) metody.
Element członkowski DateTimeStyles | Opis |
---|---|
AdjustToUniversal |
s Analizuje i w razie potrzeby konwertuje go na czas UTC. Jeśli s zawiera przesunięcie strefy czasowej lub jeśli s nie zawiera informacji o strefie czasowej, ale styles zawiera flagę DateTimeStyles.AssumeLocal , metoda analizuje ciąg, wywołuje ToUniversalTime metodę , aby przekonwertować zwróconą DateTime wartość 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 zwróconą DateTime wartość i ustawia Kind właściwość na DateTimeKind.Utcwartość . We wszystkich innych przypadkach flaga nie wywiera żadnego wpływu. |
AllowInnerWhite | Określa, że odstęp niezdefiniowany przez format program może występować między dowolnym pojedynczym elementem daty lub godziny. |
AllowLeadingWhite | Określa, że białe znaki niezdefiniowane przez format program mogą pojawić się na początku .s |
AllowTrailingWhite | Określa, że biały znak niezdefiniowany przez format może być wyświetlany na końcu .s |
AllowWhiteSpaces | Określa, że s może zawierać wiodące, wewnętrzne i końcowe białe spacje niezdefiniowane przez format . |
AssumeLocal | Określa, że jeśli s brakuje informacji o strefie czasowej, przyjmuje się, że reprezentuje czas lokalny. Jeśli flaga DateTimeStyles.AdjustToUniversal nie jest obecna, Kind właściwość zwróconej DateTime wartości jest ustawiona na DateTimeKind.Localwartość . |
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. |
NoCurrentDateDefault | Jeśli s zawiera godzinę bez informacji o dacie, data zwracanej wartości jest ustawiona na wartość DateTime.MinValue.Date . |
None | Parametr s jest analizowany przy użyciu wartości domyślnych. Niedozwolone jest białe znaki inne niż obecne w format elemecie . Jeśli s brakuje składnika daty, data zwracanej DateTime wartości jest ustawiona na 1/1/0001. Jeśli s nie zawiera informacji o strefie czasowej, Kind właściwość zwróconego DateTime obiektu jest ustawiona na wartość DateTimeKind.Unspecified. Jeśli informacje o strefie czasowej są obecne w s programie , czas jest konwertowany na czas lokalny, a Kind właściwość zwróconego DateTime obiektu jest ustawiona na DateTimeKind.Localwartość . |
RoundtripKind | W przypadku ciągów zawierających informacje o strefie czasowej próbuje zapobiec konwersji na wartość z jej Kind właściwością ustawioną DateTime na DateTimeKind.Localwartość . Ta flaga zapobiega przede wszystkim konwersji czasu UTC na czas lokalny. |
Uwagi dotyczące wywoływania
W .NET Framework 4 metoda zwraca false
wartość , jeśli ciąg, który ma zostać przeanalizowany, TryParseExact zawiera składnik godziny i projektowania AM/PM, które nie są zgodne. W .NET Framework 3.5 i starszych wersjach projektowania AM/PM jest ignorowany.
Zobacz też
- ParseExact
- CultureInfo
- DateTimeFormatInfo
- Analizowanie ciągów daty i godziny w programie .NET Framework
- Standardowe ciągi formatu daty i godziny
- Niestandardowe ciągi formatu daty i godziny
Dotyczy
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla