DateTime.TryParse Metoda

Definicja

Konwertuje określony ciąg reprezentujący datę i godzinę na jego odpowiednik DateTime i zwraca wartość wskazującą, czy konwersja powiodła się.Converts the specified string representation of a date and time to its DateTime equivalent and returns a value that indicates whether the conversion succeeded.

Przeciążenia

TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime)

Konwertuje reprezentację zakresu daty i godziny do DateTime równoważnej przy użyciu określonych informacji o formacie i stylu formatowania specyficznych dla kultury oraz zwraca wartość wskazującą, czy konwersja powiodła się.Converts the span representation of a date and time to its DateTime equivalent using the specified culture-specific format information and formatting style, and returns a value that indicates whether the conversion succeeded.

TryParse(String, DateTime)

Konwertuje określony ciąg reprezentujący datę i godzinę na jego odpowiednik DateTime i zwraca wartość wskazującą, czy konwersja powiodła się.Converts the specified string representation of a date and time to its DateTime equivalent and returns a value that indicates whether the conversion succeeded.

TryParse(String, IFormatProvider, DateTimeStyles, DateTime)

Konwertuje określony ciąg reprezentujący datę i godzinę na jego DateTime odpowiednik przy użyciu określonych informacji o formacie i stylu formatowania specyficznych dla kultury oraz zwraca wartość wskazującą, czy konwersja powiodła się.Converts the specified string representation of a date and time to its DateTime equivalent using the specified culture-specific format information and formatting style, and returns a value that indicates whether the conversion succeeded.

TryParse(ReadOnlySpan<Char>, DateTime)

Konwertuje określony zakres znaków na datę i godzinę na jego odpowiednik DateTime i zwraca wartość wskazującą, czy konwersja powiodła się.Converts the specified char span of a date and time to its DateTime equivalent and returns a value that indicates whether the conversion succeeded.

Uwagi

Ważne

Ery kalendarza japońskiego opierają się na reign imperatora i w związku z tym są powinna się zmienić.Eras in the Japanese calendars are based on the emperor's reign and are therefore expected to change. Na przykład 1 maja 2019 oznaczony początku ery Reiwa JapaneseCalendar i JapaneseLunisolarCalendar.For example, May 1, 2019 marked the beginning of the Reiwa era in the JapaneseCalendar and JapaneseLunisolarCalendar. Zmiana era ma wpływ na wszystkie aplikacje, które używają tych kalendarzy.Such a change of era affects all applications that use these calendars. Zobacz obsługi nowej ery usług w kalendarza japońskiego na platformie .NET uzyskać więcej informacji, jak i do określenia aplikacji, których dotyczy problem.See Handling a new era in the Japanese calendar in .NET for more information and to determine whether your applications are affected. Zobacz przygotowanie aplikacji w taki sposób, aby ta zmiana era japoński instrukcje dotyczące testowania aplikacji w systemach Windows w celu zapewnienia ich gotowości, aby ta zmiana era.See Prepare your application for the Japanese era change for information on testing your applications on Windows systems to ensure their readiness for the era change. Zobacz Praca z erami dla funkcji na platformie .NET, które obsługują kalendarzach z erami wielu i najlepsze rozwiązania, gdy praca z kalendarzami, które obsługują wiele er.See Working with eras for features in .NET that support calendars with multiple eras and for best practices when working with calendars that support multiple eras.

TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime)

Konwertuje reprezentację zakresu daty i godziny do DateTime równoważnej przy użyciu określonych informacji o formacie i stylu formatowania specyficznych dla kultury oraz zwraca wartość wskazującą, czy konwersja powiodła się.Converts the span representation of a date and time to its DateTime equivalent using the specified culture-specific format information and formatting style, and returns a value that indicates whether the conversion succeeded.

public:
 static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, System::Globalization::DateTimeStyles styles, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParse (ReadOnlySpan<char> s, IFormatProvider provider, System.Globalization.DateTimeStyles styles, out DateTime result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * System.Globalization.DateTimeStyles * DateTime -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, styles As DateTimeStyles, ByRef result As DateTime) As Boolean

Parametry

s
ReadOnlySpan<Char>

Zakres zawierający znaki reprezentujące datę i godzinę do przekonwertowania.A span containing the characters representing the date and time to convert.

provider
IFormatProvider

Obiekt, który dostarcza informacje o formatowaniu specyficzne dla kultury dotyczące s.An object that supplies culture-specific formatting information about s.

styles
DateTimeStyles

Bitowa kombinacja wartości wyliczenia, która definiuje sposób interpretacji przeanalizowanej daty w odniesieniu do bieżącej strefy czasowej lub bieżącej daty.A bitwise combination of enumeration values that defines how to interpret the parsed date in relation to the current time zone or the current date. Typową wartością do określenia jest None.A typical value to specify is None.

result
DateTime

Gdy ta metoda zwraca, zawiera DateTime wartość odpowiadającą dacie i godzinie zawartej w s, jeśli konwersja zakończyła się powodzeniem, lub MinValue, jeśli konwersja zakończyła się niepowodzeniem.When this method returns, contains the DateTime value equivalent to the date and time contained in s, if the conversion succeeded, or MinValue if the conversion failed. Konwersja nie powiedzie się, jeśli parametr s jest null, jest ciągiem pustym ("") lub nie zawiera prawidłowej reprezentacji ciągu daty i godziny.The conversion fails if the s parameter is null, is an empty string (""), or does not contain a valid string representation of a date and time. Ten parametr jest przekazywany jako niezainicjowany.This parameter is passed uninitialized.

Zwraca

true, czy parametr s został pomyślnie przekonwertowany; w przeciwnym razie false.true if the s parameter was converted successfully; otherwise, false.

TryParse(String, DateTime)

Konwertuje określony ciąg reprezentujący datę i godzinę na jego odpowiednik DateTime i zwraca wartość wskazującą, czy konwersja powiodła się.Converts the specified string representation of a date and time to its DateTime equivalent and returns a value that indicates whether the conversion succeeded.

public:
 static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParse (string s, out DateTime result);
static member TryParse : string * DateTime -> bool
Public Shared Function TryParse (s As String, ByRef result As DateTime) As Boolean

Parametry

s
String

Ciąg zawierający datę i godzinę konwersji.A string containing a date and time to convert.

result
DateTime

Gdy ta metoda zwraca, zawiera DateTime wartość odpowiadającą dacie i godzinie zawartej w s, jeśli konwersja zakończyła się powodzeniem, lub MinValue, jeśli konwersja zakończyła się niepowodzeniem.When this method returns, contains the DateTime value equivalent to the date and time contained in s, if the conversion succeeded, or MinValue if the conversion failed. Konwersja nie powiedzie się, jeśli parametr s jest null, jest ciągiem pustym ("") lub nie zawiera prawidłowej reprezentacji ciągu daty i godziny.The conversion fails if the s parameter is null, is an empty string (""), or does not contain a valid string representation of a date and time. Ten parametr jest przekazywany jako niezainicjowany.This parameter is passed uninitialized.

Zwraca

true, czy parametr s został pomyślnie przekonwertowany; w przeciwnym razie false.true if the s parameter was converted successfully; otherwise, false.

Przykłady

Poniższy przykład przekazuje szereg ciągów daty i godziny do metody DateTime.TryParse(String, DateTime).The following example passes a number of date and time strings to the DateTime.TryParse(String, DateTime) method.

using namespace System;
using namespace System::Globalization;

void main()
{
   array<String^>^ dateStrings = { "05/01/2009 14:57:32.8", "2009-05-01 14:57:32.8", 
                                   "2009-05-01T14:57:32.8375298-04:00", 
                                    "5/01/2008 14:57:32.80 -07:00", 
                                    "1 May 2008 2:57:32.8 PM", "16-05-2009 1:00:32 PM", 
                                    "Fri, 15 May 2009 20:10:57 GMT" };
   DateTime dateValue;

   Console::WriteLine("Attempting to parse strings using {0} culture.", 
                     CultureInfo::CurrentCulture->Name);
   for each (String^ dateString in dateStrings)
   {
      if (DateTime::TryParse(dateString, dateValue)) 
         Console::WriteLine("  Converted '{0}' to {1} ({2}).", dateString, 
                           dateValue, dateValue.Kind);
      else
         Console::WriteLine("  Unable to parse '{0}'.", dateString);
   }
}
// The example displays the following output: 
//    Attempting to parse strings using en-US culture. 
//       Converted '05/01/2009 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified). 
//       Converted '2009-05-01 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified). 
//       Converted '2009-05-01T14:57:32.8375298-04:00' to 5/1/2009 11:57:32 AM (Local). 
//       Converted '5/01/2008 14:57:32.80 -07:00' to 5/1/2008 2:57:32 PM (Local). 
//       Converted '1 May 2008 2:57:32.8 PM' to 5/1/2008 2:57:32 PM (Unspecified). 
//       Unable to parse '16-05-2009 1:00:32 PM'. 
//       Converted 'Fri, 15 May 2009 20:10:57 GMT' to 5/15/2009 1:10:57 PM (Local).
using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] dateStrings = {"05/01/2009 14:57:32.8", "2009-05-01 14:57:32.8",
                              "2009-05-01T14:57:32.8375298-04:00", "5/01/2008",
                              "5/01/2008 14:57:32.80 -07:00", 
                              "1 May 2008 2:57:32.8 PM", "16-05-2009 1:00:32 PM", 
                              "Fri, 15 May 2009 20:10:57 GMT" };
      DateTime dateValue;
      
      Console.WriteLine("Attempting to parse strings using {0} culture.", 
                        CultureInfo.CurrentCulture.Name);
      foreach (string dateString in dateStrings)
      {
         if (DateTime.TryParse(dateString, out dateValue)) 
            Console.WriteLine("  Converted '{0}' to {1} ({2}).", dateString, 
                              dateValue, dateValue.Kind);
         else
            Console.WriteLine("  Unable to parse '{0}'.", dateString);
      }
   }
}
// The example displays output like the following:
//    Attempting to parse strings using en-US culture.
//      Converted '05/01/2009 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
//      Converted '2009-05-01 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
//      Converted '2009-05-01T14:57:32.8375298-04:00' to 5/1/2009 11:57:32 AM (Local).
//
//      Converted '5/01/2008' to 5/1/2008 12:00:00 AM (Unspecified).
//      Converted '5/01/2008 14:57:32.80 -07:00' to 5/1/2008 2:57:32 PM (Local).
//      Converted '1 May 2008 2:57:32.8 PM' to 5/1/2008 2:57:32 PM (Unspecified).
//      Unable to parse '16-05-2009 1:00:32 PM'.
//      Converted 'Fri, 15 May 2009 20:10:57 GMT' to 5/15/2009 1:10:57 PM (Local).
Imports System.Globalization

Public Module Example
   Public Sub Main()
      Dim dateStrings() As String = {"05/01/2009 14:57:32.8", "2009-05-01 14:57:32.8",
                                     "2009-05-01T14:57:32.8375298-04:00", "5/01/2008",
                                     "5/01/2008 14:57:32.80 -07:00",
                                     "1 May 2008 2:57:32.8 PM", "16-05-2009 1:00:32 PM",
                                     "Fri, 15 May 2009 20:10:57 GMT"}
      Dim dateValue As Date
      
      Console.WriteLine("Attempting to parse strings using {0} culture.", _
                        CultureInfo.CurrentCulture.Name)
      For Each dateString As String In dateStrings
         If Date.TryParse(dateString, dateValue) Then
            Console.WriteLine("  Converted '{0}' to {1} ({2}).", dateString, _
                              dateValue, dateValue.Kind)
         Else
            Console.WriteLine("  Unable to parse '{0}'.", dateString)
         End If
      Next
   End Sub
End Module
' The example displays output like the following:
'    Attempting to parse strings using en-US culture.
'      Converted '05/01/2009 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
'      Converted '2009-05-01 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
'      Converted '2009-05-01T14:57:32.8375298-04:00' to 5/1/2009 11:57:32 AM (Local).
'
'      Converted '5/01/2008' to 5/1/2008 12:00:00 AM (Unspecified).
'      Converted '5/01/2008 14:57:32.80 -07:00' to 5/1/2008 2:57:32 PM (Local).
'      Converted '1 May 2008 2:57:32.8 PM' to 5/1/2008 2:57:32 PM (Unspecified).
'      Unable to parse '16-05-2009 1:00:32 PM'.
'      Converted 'Fri, 15 May 2009 20:10:57 GMT' to 5/15/2009 1:10:57 PM (Local).

Uwagi

Metoda DateTime.TryParse(String, DateTime) jest podobna do metody DateTime.Parse(String), z tą różnicą, że metoda TryParse(String, DateTime) nie zgłasza wyjątku, jeśli konwersja nie powiedzie się.The DateTime.TryParse(String, DateTime) method is similar to the DateTime.Parse(String) method, except that the TryParse(String, DateTime) method does not throw an exception if the conversion fails.

Ciąg s jest analizowany przy użyciu informacji o formatowaniu w bieżącym obiekcie DateTimeFormatInfo, który jest dostarczany niejawnie przez bieżącą kulturę wątku.The string s is parsed using formatting information in the current DateTimeFormatInfo object, which is supplied implicitly by the current thread culture.

Ta metoda próbuje zignorować nierozpoznane dane, jeśli to możliwe, i wypełnia brakujące informacje o miesiącu, dzień i rok z bieżącą datą.This method tries to ignore unrecognized data, if possible, and fills in missing month, day, and year information with the current date. Jeśli s zawiera tylko datę i brak czasu, ta metoda zakłada, że czas to 12:00 północy.If s contains only a date and no time, this method assumes the time is 12:00 midnight. Jeśli s zawiera składnik daty z rokiem dwucyfrowym, jest konwertowany na rok w bieżącym kalendarzu bieżącej kultury na podstawie wartości właściwości Calendar.TwoDigitYearMax.If s includes a date component with a two-digit year, it is converted to a year in the current culture's current calendar based on the value of the Calendar.TwoDigitYearMax property. Dowolny wiodący, wewnętrzny lub końcowy znak odstępu w s jest ignorowany.Any leading, inner, or trailing white space character in s is ignored. Datę i godzinę można przenawiasować za pomocą pary wiodących i końcowych znaków numeru ("#", U + 0023) i można je kończyć z co najmniej jednym znakiem NULL (U + 0000).The date and time can be bracketed with a pair of leading and trailing NUMBER SIGN characters ('#', U+0023), and can be trailed with one or more NULL characters (U+0000).

Ponieważ metoda DateTime.TryParse(String, DateTime) próbuje przeanalizować ciąg reprezentujący datę i godzinę przy użyciu reguł formatowania bieżącej kultury, próba przeanalizowania określonego ciągu dla różnych kultur może zakończyć się niepowodzeniem lub zwracać różne wyniki.Because the DateTime.TryParse(String, DateTime) method tries to parse the string representation of a date and time using the formatting rules of the current culture, trying to parse a particular string across different cultures can either fail or return different results. Jeśli określony format daty i godziny zostanie przeanalizowany dla różnych ustawień regionalnych, użyj metody DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) lub jednego z przeciążeń metody TryParseExact i podaj specyfikator formatu.If a specific date and time format will be parsed across different locales, use the DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) method or one of the overloads of the TryParseExact method and provide a format specifier.

Jeśli s to ciąg reprezentujący dzień przestępny w roku przestępnym w bieżącym kalendarzu, Metoda przeanalizuje s pomyślnie.If s is the string representation of a leap day in a leap year in the current calendar, the method parses s successfully. Jeśli s to ciąg reprezentujący dzień przestępny w roku przestępnym w bieżącym kalendarzu bieżącej kultury, operacja analizy kończy się niepowodzeniem, a metoda zwraca false.If s is the string representation of a leap day in a non-leap year in the current culture's current calendar, the parse operation fails and the method returns false.

Jeśli s nie zawiera informacji o strefie czasowej, result zawiera wartość DateTime, której Właściwość Kind jest DateTimeKind.Unspecified, gdy metoda zwróci wartość.If s contains no time zone information, result contains a DateTime value whose Kind property is DateTimeKind.Unspecified when the method returns. Jeśli ciąg, który ma zostać przeanalizowany, zawiera informacje o strefie czasowej, result zawiera DateTime wartość, której Właściwość Kind jest DateTimeKind.Local, gdy metoda zwraca.If the string to be parsed contains time zone information, result contains a DateTime value whose Kind property is DateTimeKind.Local when the method returns.

Uwagi dotyczące wywoływania

Na formatowanie mają wpływ właściwości bieżącego obiektu DateTimeFormatInfo, które domyślnie są wyprowadzane z elementu Opcje regionalne i językowe w panelu sterowania.Formatting is influenced by properties of the current DateTimeFormatInfo object, which by default are derived from the Regional and Language Options item in Control Panel. Metoda TryParse może nieoczekiwanie zakończyć się niepowodzeniem i zwrócić False, jeśli właściwości Current DateSeparator i TimeSeparator są ustawione na tę samą wartość.The TryParse method can unexpectedly fail and return False if the current DateSeparator and TimeSeparator properties are set to the same value.

Zobacz też

TryParse(String, IFormatProvider, DateTimeStyles, DateTime)

Konwertuje określony ciąg reprezentujący datę i godzinę na jego DateTime odpowiednik przy użyciu określonych informacji o formacie i stylu formatowania specyficznych dla kultury oraz zwraca wartość wskazującą, czy konwersja powiodła się.Converts the specified string representation of a date and time to its DateTime equivalent using the specified culture-specific format information and formatting style, and returns a value that indicates whether the conversion succeeded.

public:
 static bool TryParse(System::String ^ s, IFormatProvider ^ provider, System::Globalization::DateTimeStyles styles, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParse (string s, IFormatProvider provider, System.Globalization.DateTimeStyles styles, out DateTime result);
static member TryParse : string * IFormatProvider * System.Globalization.DateTimeStyles * DateTime -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, styles As DateTimeStyles, ByRef result As DateTime) As Boolean

Parametry

s
String

Ciąg zawierający datę i godzinę konwersji.A string containing a date and time to convert.

provider
IFormatProvider

Obiekt, który dostarcza informacje o formatowaniu specyficzne dla kultury dotyczące s.An object that supplies culture-specific formatting information about s.

styles
DateTimeStyles

Bitowa kombinacja wartości wyliczenia, która definiuje sposób interpretacji przeanalizowanej daty w odniesieniu do bieżącej strefy czasowej lub bieżącej daty.A bitwise combination of enumeration values that defines how to interpret the parsed date in relation to the current time zone or the current date. Typową wartością do określenia jest None.A typical value to specify is None.

result
DateTime

Gdy ta metoda zwraca, zawiera DateTime wartość odpowiadającą dacie i godzinie zawartej w s, jeśli konwersja zakończyła się powodzeniem, lub MinValue, jeśli konwersja zakończyła się niepowodzeniem.When this method returns, contains the DateTime value equivalent to the date and time contained in s, if the conversion succeeded, or MinValue if the conversion failed. Konwersja nie powiedzie się, jeśli parametr s jest null, jest ciągiem pustym ("") lub nie zawiera prawidłowej reprezentacji ciągu daty i godziny.The conversion fails if the s parameter is null, is an empty string (""), or does not contain a valid string representation of a date and time. Ten parametr jest przekazywany jako niezainicjowany.This parameter is passed uninitialized.

Zwraca

true, czy parametr s został pomyślnie przekonwertowany; w przeciwnym razie false.true if the s parameter was converted successfully; otherwise, false.

Wyjątki

styles nie jest prawidłową wartością DateTimeStyles.styles is not a valid DateTimeStyles value.

— lub —-or- styles zawiera nieprawidłową kombinację wartości DateTimeStyles (na przykład zarówno AssumeLocal, jak i AssumeUniversal).styles contains an invalid combination of DateTimeStyles values (for example, both AssumeLocal and AssumeUniversal).

provider jest kulturą neutralną i nie można jej użyć w operacji analizowania.provider is a neutral culture and cannot be used in a parsing operation.

Przykłady

Poniższy przykład ilustruje metodę DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime).The following example illustrates the DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) method.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string dateString;
      CultureInfo culture;
      DateTimeStyles styles;
      DateTime dateResult;
      
      // Parse a date and time with no styles.
      dateString = "03/01/2009 10:00 AM";
      culture = CultureInfo.CreateSpecificCulture("en-US");
      styles = DateTimeStyles.None;
      if (DateTime.TryParse(dateString, culture, styles, out dateResult))
         Console.WriteLine("{0} converted to {1} {2}.", 
                           dateString, dateResult, dateResult.Kind);
      else
         Console.WriteLine("Unable to convert {0} to a date and time.", 
                           dateString);
      
      // Parse the same date and time with the AssumeLocal style.
      styles = DateTimeStyles.AssumeLocal;
      if (DateTime.TryParse(dateString, culture, styles, out dateResult))
         Console.WriteLine("{0} converted to {1} {2}.", 
                           dateString, dateResult, dateResult.Kind);
      else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString);
      
      // Parse a date and time that is assumed to be local.
      // This time is five hours behind UTC. The local system's time zone is 
      // eight hours behind UTC.
      dateString = "2009/03/01T10:00:00-5:00";
      styles = DateTimeStyles.AssumeLocal;
      if (DateTime.TryParse(dateString, culture, styles, out dateResult))
         Console.WriteLine("{0} converted to {1} {2}.", 
                           dateString, dateResult, dateResult.Kind);
      else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString);
      
      // Attempt to convert a string in improper ISO 8601 format.
      dateString = "03/01/2009T10:00:00-5:00";
      if (DateTime.TryParse(dateString, culture, styles, out dateResult))
         Console.WriteLine("{0} converted to {1} {2}.", 
                           dateString, dateResult, dateResult.Kind);
      else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString);

      // Assume a date and time string formatted for the fr-FR culture is the local 
      // time and convert it to UTC.
      dateString = "2008-03-01 10:00";
      culture = CultureInfo.CreateSpecificCulture("fr-FR");
      styles = DateTimeStyles.AdjustToUniversal | DateTimeStyles.AssumeLocal;
      if (DateTime.TryParse(dateString, culture, styles, out dateResult))
         Console.WriteLine("{0} converted to {1} {2}.", 
                           dateString, dateResult, dateResult.Kind);
      else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString);
   }
}
// The example displays the following output to the console:
//       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Unspecified.
//       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Local.
//       2009/03/01T10:00:00-5:00 converted to 3/1/2009 7:00:00 AM Local.
//       Unable to convert 03/01/2009T10:00:00-5:00 to a date and time.
//       2008-03-01 10:00 converted to 3/1/2008 6:00:00 PM Utc.
Imports System.Globalization

Public Module Example
   Public Sub Main()
      Dim dateString As String
      Dim culture As CultureInfo
      Dim styles As DateTimeStyles 
      Dim dateResult As DateTime
      
      ' Parse a date and time with no styles.
      dateString = "03/01/2009 10:00 AM"
      culture = CultureInfo.CreateSpecificCulture("en-US")
      styles = DateTimeStyles.None
      If DateTime.TryParse(dateString, culture, styles, dateResult) Then
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, dateResult, dateResult.Kind)
      Else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End If      
      
      ' Parse the same date and time with the AssumeLocal style.
      styles = DateTimeStyles.AssumeLocal
      If DateTime.TryParse(dateString, culture, styles, dateResult)
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, dateResult, dateResult.Kind)
      Else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End If      
      
      ' Parse a date and time that is assumed to be local.
      ' This time is five hours behind UTC. The local system's time zone is 
      ' eight hours behind UTC.
      dateString = "2009/03/01T10:00:00-5:00"
      styles = DateTimeStyles.AssumeLocal
      If DateTime.TryParse(dateString, culture, styles, dateResult)
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, dateResult, dateResult.Kind)
      Else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End If      
      
      ' Attempt to convert a string in improper ISO 8601 format.
      dateString = "03/01/2009T10:00:00-5:00"
      If DateTime.TryParse(dateString, culture, styles, dateResult)
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, dateResult, dateResult.Kind)
      Else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End If      

      ' Assume a date and time string formatted for the fr-FR culture is the local 
      ' time and convert it to UTC.
      dateString = "2008-03-01 10:00"
      culture = CultureInfo.CreateSpecificCulture("fr-FR")
      styles = DateTimeStyles.AdjustToUniversal Or DateTimeStyles.AssumeLocal
      If DateTime.TryParse(dateString, culture, styles, dateResult)
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, dateResult, dateResult.Kind)
      Else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End If      
   End Sub
End Module
' The example displays the following output to the console:
'       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Unspecified.
'       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Local.
'       2009/03/01T10:00:00-5:00 converted to 3/1/2009 7:00:00 AM Local.
'       Unable to convert 03/01/2009T10:00:00-5:00 to a date and time.
'       2008-03-01 10:00 converted to 3/1/2008 6:00:00 PM Utc.

Uwagi

Metoda DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) analizuje ciąg, który może zawierać datę, godzinę i informacje o strefie czasowej.The DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) method parses a string that can contain date, time, and time zone information. Jest podobna do metody DateTime.Parse(String, IFormatProvider, DateTimeStyles), z tą różnicą, że metoda DateTime.TryParse(String, DateTime) nie zgłasza wyjątku, jeśli konwersja nie powiedzie się.It is similar to the DateTime.Parse(String, IFormatProvider, DateTimeStyles) method, except that the DateTime.TryParse(String, DateTime) method does not throw an exception if the conversion fails.

Ta metoda próbuje zignorować nierozpoznane dane i przeanalizować s całkowicie.This method attempts to ignore unrecognized data and parse s completely. Jeśli s zawiera godzinę, ale nie datę, Metoda domyślnie zastępuje bieżącą datę lub, jeśli styles zawiera flagę NoCurrentDateDefault, zastępuje DateTime.Date.MinValue.If s contains a time but no date, the method by default substitutes the current date or, if styles includes the NoCurrentDateDefault flag, it substitutes DateTime.Date.MinValue. Jeśli s zawiera datę, ale nie czas, jako domyślny czas używany jest 12:00 północy.If s contains a date but no time, 12:00 midnight is used as the default time. Jeśli data jest obecna, ale jej składnik roku składa się tylko z dwóch cyfr, jest konwertowany na rok w bieżącym kalendarzu provider parametru na podstawie wartości właściwości Calendar.TwoDigitYearMax.If a date is present but its year component consists of only two digits, it is converted to a year in the provider parameter's current calendar based on the value of the Calendar.TwoDigitYearMax property. Wszystkie wiodące, wewnętrzne lub końcowe znaki odstępu w s są ignorowane.Any leading, inner, or trailing white space characters in s are ignored. Datę i godzinę można przenawiasować za pomocą pary wiodących i końcowych znaków numeru ("#", U + 0023) i można je kończyć z co najmniej jednym znakiem NULL (U + 0000).The date and time can be bracketed with a pair of leading and trailing NUMBER SIGN characters ('#', U+0023), and can be trailed with one or more NULL characters (U+0000).

Określone prawidłowe formaty dla elementów daty i godziny, a także nazwy i symbole używane w datach i godzinach, są definiowane przez parametr provider, który może mieć jedną z następujących wartości:Specific valid formats for date and time elements, as well as the names and symbols used in dates and times, are defined by the provider parameter, which can be any of the following:

Jeśli provider jest null, używana jest bieżąca kultura.If provider is null, the current culture is used.

Jeśli s to ciąg reprezentujący dzień przestępny w roku przestępnym w bieżącym kalendarzu, Metoda przeanalizuje s pomyślnie.If s is the string representation of a leap day in a leap year in the current calendar, the method parses s successfully. Jeśli s to ciąg reprezentujący dzień przestępny w roku przestępnym w bieżącym kalendarzu provider, operacja analizy kończy się niepowodzeniem, a metoda zwróci false.If s is the string representation of a leap day in a non-leap year in the current calendar of provider, the parse operation fails and the method returns false.

styles parametr definiuje dokładną interpretację przeanalizowanego ciągu i sposób, w jaki powinna ją obsłużyć operacja analizy.The styles parameter defines the precise interpretation of the parsed string and how the parse operation should handle it. Może to być jeden lub więcej elementów członkowskich wyliczenia DateTimeStyles, zgodnie z opisem w poniższej tabeli.It can be one or more members of the DateTimeStyles enumeration, as described in the following table.

Element członkowski DateTimeStylesDateTimeStyles member OpisDescription
AdjustToUniversal Analizuje s i, w razie potrzeby, konwertuje ją na czas UTC.Parses s and, if necessary, converts it to UTC. Jeśli s obejmuje 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, aby skonwertować zwróconą DateTime wartość na czas UTC i ustawi właściwość Kind na DateTimeKind.Utc.If s includes a time zone offset, or if s contains no time zone information but styles includes the DateTimeStyles.AssumeLocal flag, the method parses the string, calls ToUniversalTime to convert the returned DateTime value to UTC, and sets the Kind property to DateTimeKind.Utc. Jeśli s wskazuje, że reprezentuje czas 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 w zwracanej wartości DateTime i ustawia właściwość Kind na DateTimeKind.Utc.If s indicates that it represents UTC, or if s does not contain time zone information but styles includes the DateTimeStyles.AssumeUniversal flag, the method parses the string, performs no time zone conversion on the returned DateTime value, and sets the Kind property to DateTimeKind.Utc. We wszystkich innych przypadkach flaga nie wywiera żadnego wpływu.In all other cases, the flag has no effect.
AllowInnerWhite Choć ważna, wartość ta jest ignorowana.Although valid, this value is ignored. W elementach daty i godziny sjest dozwolony biały znak wewnętrzny.Inner white space is permitted in the date and time elements of s.
AllowLeadingWhite Choć ważna, wartość ta jest ignorowana.Although valid, this value is ignored. W elementach daty i godziny sjest dozwolony wiodący biały znak.Leading white space is permitted in the date and time elements of s.
AllowTrailingWhite Choć ważna, wartość ta jest ignorowana.Although valid, this value is ignored. Końcowy biały znak jest dozwolony w elementach daty i godziny s.Trailing white space is permitted in the date and time elements of s.
AllowWhiteSpaces Określa, że s mogą zawierać wiodące, wewnętrzne i końcowe białe znaki.Specifies that s may contain leading, inner, and trailing white spaces. To zachowanie domyślne.This is the default behavior. Nie można go zastąpić przez dostarczenie bardziej restrykcyjnej wartości wyliczenia DateTimeStyles takiej jak DateTimeStyles.None.It cannot be overridden by supplying a more restrictive DateTimeStyles enumeration value such as DateTimeStyles.None.
AssumeLocal Określa, że jeśli s nie zawiera żadnych informacji o strefie czasowej, zakłada się, że jest to godzina lokalna.Specifies that if s lacks any time zone information, it is assumed to represent a local time. Jeśli flaga DateTimeStyles.AdjustToUniversal nie istnieje, właściwość Kind zwróconej wartości DateTime jest ustawiona na DateTimeKind.Local.Unless the DateTimeStyles.AdjustToUniversal flag is present, the Kind property of the returned DateTime value is set to DateTimeKind.Local.
AssumeUniversal Określa, że jeśli s nie zawiera żadnych informacji o strefie czasowej, zakłada się, że reprezentuje czas UTC.Specifies that if s lacks any time zone information, it is assumed to represent UTC. Jeśli flaga DateTimeStyles.AdjustToUniversal nie jest obecna, Metoda konwertuje zwróconą wartość DateTime z czasu UTC na czas lokalny i ustawi jej Właściwość Kind na DateTimeKind.Local.Unless the DateTimeStyles.AdjustToUniversal flag is present, the method converts the returned DateTime value from UTC to local time and sets its Kind property to DateTimeKind.Local.
None Choć ważna, wartość ta jest ignorowana.Although valid, this value is ignored.
RoundtripKind W przypadku ciągów zawierających informacje o strefie czasowej program próbuje zapobiec konwersji ciągu daty i godziny na wartość DateTime z właściwością Kind ustawioną na DateTimeKind.Local.For strings that contain time zone information, tries to prevent the conversion of a date and time string to a DateTime value with its Kind property set to DateTimeKind.Local. Zazwyczaj taki ciąg jest tworzony przez wywołanie metody DateTime.ToString(String) przy użyciu specyfikatorów formatu standardowego "o", "r" lub "u".Typically, such a string is created by calling the DateTime.ToString(String) method using either the "o", "r", or "u" standard format specifiers.

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 jest DateTimeKind.Unspecified, chyba że flaga styles wskazuje inaczej.If s contains no time zone information, the DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) method returns a DateTime value whose Kind property is DateTimeKind.Unspecified unless a styles flag indicates otherwise. Jeśli s obejmuje informacje o strefie czasowej lub przesunięciu strefy czasowej, Metoda DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) wykonuje wszelką konieczną konwersję czasu i zwraca jedną z następujących wartości:If s includes time zone or time zone offset information, the DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) method performs any necessary time conversion and returns one of the following:

To zachowanie można zastąpić przy użyciu flagi DateTimeStyles.RoundtripKind.This behavior can be overridden by using the DateTimeStyles.RoundtripKind flag.

Analizowanie niestandardowych kulturParsing Custom Cultures

W przypadku analizowania ciągu daty i godziny wygenerowanego dla niestandardowej kultury Użyj metody TryParseExact zamiast metody TryParse, aby zwiększyć prawdopodobieństwo pomyślnego wykonania operacji analizy.If you parse a date and time string generated for a custom culture, use the TryParseExact method instead of the TryParse method to improve the probability that the parse operation will succeed. Niestandardowa Data i ciąg czasu kultury mogą być skomplikowane i trudne do analizy.A custom culture date and time string can be complicated and difficult to parse. Metoda TryParse próbuje przeanalizować ciąg z kilkoma niejawnymi wzorcami analizy, co może zakończyć się niepowodzeniem.The TryParse method attempts to parse a string with several implicit parse patterns, all of which might fail. Z kolei Metoda TryParseExact wymaga jawnie wyznaczania co najmniej jednego dokładnego wzorca analizy, które może się powieść.In contrast, the TryParseExact method requires you to explicitly designate one or more exact parse patterns that are likely to succeed.

Aby uzyskać więcej informacji na temat kultur niestandardowych, zobacz Klasa System.Globalization.CultureAndRegionInfoBuilder.For more information about custom cultures, see the System.Globalization.CultureAndRegionInfoBuilder class.

Uwagi dotyczące wywoływania

Na formatowanie mają wpływ właściwości bieżącego obiektu DateTimeFormatInfo, który jest dostarczany przez parametr provider.Formatting is influenced by properties of the current DateTimeFormatInfo object, which is supplied by the provider parameter. Metoda TryParse może nieoczekiwanie zakończyć się niepowodzeniem i zwrócić False, jeśli właściwości Current DateSeparator i TimeSeparator są ustawione na tę samą wartość.The TryParse method can unexpectedly fail and return False if the current DateSeparator and TimeSeparator properties are set to the same value.

Zobacz też

TryParse(ReadOnlySpan<Char>, DateTime)

Konwertuje określony zakres znaków na datę i godzinę na jego odpowiednik DateTime i zwraca wartość wskazującą, czy konwersja powiodła się.Converts the specified char span of a date and time to its DateTime equivalent and returns a value that indicates whether the conversion succeeded.

public:
 static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParse (ReadOnlySpan<char> s, out DateTime result);
static member TryParse : ReadOnlySpan<char> * DateTime -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As DateTime) As Boolean

Parametry

s
ReadOnlySpan<Char>

Ciąg zawierający datę i godzinę konwersji.A string containing a date and time to convert.

result
DateTime

Gdy ta metoda zwraca, zawiera DateTime wartość odpowiadającą dacie i godzinie zawartej w s, jeśli konwersja zakończyła się powodzeniem, lub MinValue, jeśli konwersja zakończyła się niepowodzeniem.When this method returns, contains the DateTime value equivalent to the date and time contained in s, if the conversion succeeded, or MinValue if the conversion failed. Konwersja nie powiedzie się, jeśli parametr s jest null, jest ciągiem pustym ("") lub nie zawiera prawidłowej reprezentacji ciągu daty i godziny.The conversion fails if the s parameter is null, is an empty string (""), or does not contain a valid string representation of a date and time. Ten parametr jest przekazywany jako niezainicjowany.This parameter is passed uninitialized.

Zwraca

true, czy parametr s został pomyślnie przekonwertowany; w przeciwnym razie false.true if the s parameter was converted successfully; otherwise, false.

Dotyczy