DateTime.TryParse Metoda

Definicja

Konwertuje określony ciąg reprezentujący datę i godzinę na jego DateTime odpowiednik 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 na jej 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 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 DateTime odpowiednik 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 DateTime odpowiednik 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

Wymazywanie w kalendarzach japońskich opiera się na reignu Imperatora i dlatego oczekuje się ich zmiany.Eras in the Japanese calendars are based on the emperor's reign and are therefore expected to change. Na przykład 1 maja 2019 oznacza początek Reiwa ERA w JapaneseCalendar i JapaneseLunisolarCalendar .For example, May 1, 2019 marked the beginning of the Reiwa era in the JapaneseCalendar and JapaneseLunisolarCalendar. Taka zmiana ery wpływa na wszystkie aplikacje korzystające z tych kalendarzy.Such a change of era affects all applications that use these calendars. Aby uzyskać więcej informacji, zobacz temat Obsługa nowej ery w kalendarzu japońskim w programie .NET i określanie, czy mają one zastosowanie.See Handling a new era in the Japanese calendar in .NET for more information and to determine whether your applications are affected. Zobacz Przygotowywanie aplikacji do japońskiej zmiany ery, Aby uzyskać informacje na temat testowania aplikacji w systemach Windows w celu zapewnienia ich gotowości do zmiany 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 wymazaniem , aby poznać funkcje platformy .NET, które obsługują kalendarze z wieloma wymazywanymi i najlepszymi rozwiązaniami podczas pracy z kalendarzami obsługującymi wiele wymazów.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 na jej 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 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);
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 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ść równoważną dacie i godzinie zawartej w s , jeśli konwersja zakończyła się powodzeniem lub MinValue Konwersja nie powiodła się.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 s parametr ma wartość 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

Boolean

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

Dotyczy

TryParse(String, DateTime)

Konwertuje określony ciąg reprezentujący datę i godzinę na jego DateTime odpowiednik 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ść równoważną dacie i godzinie zawartej w s , jeśli konwersja zakończyła się powodzeniem lub MinValue Konwersja nie powiodła się.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 s parametr ma wartość 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

Boolean

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

Przykłady

Poniższy przykład przekazuje do metody liczbę ciągów daty i godziny 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

DateTime.TryParse(String, DateTime)Metoda jest podobna do DateTime.Parse(String) metody, z tą różnicą, że metoda nie zgłasza TryParse(String, DateTime) 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 DateTimeFormatInfo obiekcie, 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 godzinę, ta metoda zakłada, że czas wynosi 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 dwucyfrowym rokiem, jest konwertowany na rok w bieżącym kalendarzu bieżącej kultury na podstawie wartości Calendar.TwoDigitYearMax właściwości.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. Wszystkie wiodące, wewnętrzne lub końcowe znaki odstępu w programie s są ignorowane.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ż DateTime.TryParse(String, DateTime) Metoda 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 zwrócić 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 DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) metody lub jednego z przeciążeń TryParseExact metody 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 jest to ciąg reprezentujący dzień przestępny w roku przestępnym w bieżącym kalendarzu, Metoda zostanie przeanalizowana 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 jest 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 i zwraca metodę 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 DateTime wartość, której Kind Właściwość jest DateTimeKind.Unspecified zwracana, gdy metoda zwraca.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 być analizowany, zawiera informacje o strefie czasowej, result zawiera DateTime wartość, której Kind Właściwość jest DateTimeKind.Local zwracana, 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 DateTimeFormatInfo obiektu, 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. TryParseMetoda może nieoczekiwanie się nie powieść i zwrócić, False Jeśli bieżąca DateSeparator i TimeSeparator właściwości 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ż

Dotyczy

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 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ść równoważną dacie i godzinie zawartej w s , jeśli konwersja zakończyła się powodzeniem lub MinValue Konwersja nie powiodła się.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 s parametr ma wartość 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

Boolean

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

Wyjątki

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

-lub--or- styles zawiera nieprawidłową kombinację DateTimeStyles wartości (na przykład AssumeLocal 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 DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) metodę.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

DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime)Metoda 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 DateTime.Parse(String, IFormatProvider, DateTimeStyles) metody, z tą różnicą, że metoda nie zgłasza DateTime.TryParse(String, DateTime) 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 całkowicie przeanalizować s .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 NoCurrentDateDefault flagę, 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 jego składnik roku składa się tylko z dwóch cyfr, jest konwertowany na rok w provider bieżącym kalendarzu parametru na podstawie wartości Calendar.TwoDigitYearMax właściwości.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 programie 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 provider parametr, 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 jest to ciąg reprezentujący dzień przestępny w roku przestępnym w bieżącym kalendarzu, Metoda zostanie przeanalizowana 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 jest to ciąg reprezentujący dzień przestępny w roku przestępnym w bieżącym kalendarzu provider , operacja analizy kończy się niepowodzeniem i zwraca metodę 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.

stylesParametr definiuje dokładną interpretację przeanalizowanego ciągu i sposób, w jaki powinna ją obsługiwać 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 DateTimeStyles wyliczenia, 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 zawiera przesunięcie strefy czasowej lub jeśli s nie zawiera informacji o strefie czasowej styles , ale zawiera DateTimeStyles.AssumeLocal flagę, Metoda analizuje ciąg, wywołuje ToUniversalTime do konwersji zwracaną DateTime wartość na czas UTC i ustawia Kind Właściwość 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 s nie zawiera informacji o strefie czasowej styles , ale zawiera DateTimeStyles.AssumeUniversal flagę, Metoda analizuje ciąg, nie wykonuje konwersji strefy czasowej dla zwracanej DateTime wartości i ustawia Kind Właściwość 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 w elemencie s .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 w elemencie jest dozwolony wiodący biały znak s .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ć spacje wiodące, wewnętrzne i końcowe.Specifies that s may contain leading, inner, and trailing white spaces. Jest to zachowanie domyślne.This is the default behavior. Nie można go zastąpić przez dostarczenie bardziej restrykcyjnej DateTimeStyles wartości wyliczenia, 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 ma żadnych informacji o strefie czasowej, zakłada się, że reprezentuje czas lokalny.Specifies that if s lacks any time zone information, it is assumed to represent a local time. Jeśli DateTimeStyles.AdjustToUniversal flaga nie jest obecna, Kind Właściwość zwracanej DateTime wartości 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 ma ż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 DateTimeStyles.AdjustToUniversal flaga nie jest obecna, Metoda konwertuje zwracaną DateTime wartość z czasu UTC na czas lokalny i ustawia jej Kind Właściwość 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 DateTime wartość z Kind właściwością 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 DateTime.ToString(String) metody przy użyciu standardowych specyfikatorów formatu "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, DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) Metoda zwraca DateTime wartość, której Kind Właściwość jest, DateTimeKind.Unspecified chyba że styles Flaga 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 zawiera informacje o strefie czasowej lub przesunięciu strefy czasowej, DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) Metoda wykonuje wszelkie niezbędne konwersje 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 DateTimeStyles.RoundtripKind flagi.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 TryParseExact metody 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. TryParseMetoda próbuje przeanalizować ciąg za pomocą kilku niejawnych wzorców 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 TryParseExact Metoda 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 System.Globalization.CultureAndRegionInfoBuilder Klasa.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 DateTimeFormatInfo obiektu, który jest dostarczany przez provider parametr.Formatting is influenced by properties of the current DateTimeFormatInfo object, which is supplied by the provider parameter. TryParseMetoda może nieoczekiwanie się nie powieść i zwrócić, False Jeśli bieżąca DateSeparator i TimeSeparator właściwości 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ż

Dotyczy

TryParse(ReadOnlySpan<Char>, DateTime)

Konwertuje określony zakres znaków na datę i godzinę na jego DateTime odpowiednik 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ść równoważną dacie i godzinie zawartej w s , jeśli konwersja zakończyła się powodzeniem lub MinValue Konwersja nie powiodła się.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 s parametr ma wartość 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

Boolean

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

Dotyczy