DateTime.TryParse DateTime.TryParse DateTime.TryParse DateTime.TryParse Method

Определение

Преобразовывает указанное строковое представление даты и времени в его эквивалент DateTime и возвращает значение, позволяющее определить успешность преобразования.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(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime) TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime) TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime) TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime)
TryParse(String, DateTime) TryParse(String, DateTime) TryParse(String, DateTime) TryParse(String, DateTime)

Преобразовывает указанное строковое представление даты и времени в его эквивалент DateTime и возвращает значение, позволяющее определить успешность преобразования.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) TryParse(String, IFormatProvider, DateTimeStyles, DateTime) TryParse(String, IFormatProvider, DateTimeStyles, DateTime) TryParse(String, IFormatProvider, DateTimeStyles, DateTime)

Преобразует заданное строковое представление даты и времени в его эквивалент DateTime, используя указанную информацию о форматировании, связанную с языком и региональными параметрами, и возвращает значение, которое показывает успешность преобразования.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) TryParse(ReadOnlySpan<Char>, DateTime) TryParse(ReadOnlySpan<Char>, DateTime) TryParse(ReadOnlySpan<Char>, DateTime)

Комментарии

Важно!

Эры в японских календарях основаны на периодах царствования императоров. Таким образом, ожидается наступление новой эры.Eras in the Japanese calendars are based on the emperor's reign and are therefore expected to change. Например, 1 мая 2019 года в JapaneseCalendar и JapaneseLunisolarCalendar отмечено как начало эры Рэйва.For example, May 1, 2019 marked the beginning of the Reiwa era in the JapaneseCalendar and JapaneseLunisolarCalendar. Изменение эры затрагивает все приложения, использующие эти календари.Such a change of era affects all applications that use these calendars. Из раздела Обработка новой эры по японскому календарю в .NET можно почерпнуть дополнительные сведения, а также узнать, затронуты ли ваши приложения этим изменением.See Handling a new era in the Japanese calendar in .NET for more information and to determine whether your applications are affected. Сведения о тестировании приложений в системах Windows для обеспечения их готовности к работе в новой эре см. в разделе Подготовка приложения к изменению эры по японскому календарю.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. Сведения о функциях в .NET, которые поддерживают календарь с несколькими эрами, и рекомендации по использованию таких календарей см. в разделе о работе с эрами.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) TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime) TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime) TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime)

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 *  -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, styles As DateTimeStyles, ByRef result As DateTime) As Boolean

Параметры

Возвраты

TryParse(String, DateTime) TryParse(String, DateTime) TryParse(String, DateTime) TryParse(String, DateTime)

Преобразовывает указанное строковое представление даты и времени в его эквивалент DateTime и возвращает значение, позволяющее определить успешность преобразования.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 *  -> bool
Public Shared Function TryParse (s As String, ByRef result As DateTime) As Boolean

Параметры

s
String String String String

Строка, содержащая дату и время, которые нужно преобразовать.A string containing a date and time to convert.

result
DateTime DateTime DateTime DateTime

После возврата из этого метода содержит значение DateTime, эквивалентное дате и времени, заданным в параметре s, если преобразование прошло успешно, или значение MinValue, если преобразование завершилось неудачей.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. Преобразование завершается неудачей, если значение параметра s равно null или пустой строке ("") или не содержит допустимого строкового представления даты и времени.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. Этот параметр передается неинициализированным.This parameter is passed uninitialized.

Возвраты

Значение true, если параметр s успешно преобразован; в противном случае — значение false.true if the s parameter was converted successfully; otherwise, false.

Примеры

В следующем примере в 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).

Комментарии

Метод аналогичен DateTime.Parse(String) методу, за исключением того, что методнесоздаетисключение,еслипреобразованиезавершаетсянеудачей.TryParse(String, DateTime) DateTime.TryParse(String, DateTime)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.

Строка s анализируется с помощью сведений о форматировании в текущем DateTimeFormatInfo объекте, который неявно предоставляется культурой текущего потока.The string s is parsed using formatting information in the current DateTimeFormatInfo object, which is supplied implicitly by the current thread culture.

Этот метод пытается проигнорировать нераспознанные данные, если это возможно, и заполнить отсутствующие данные месяца, дня и года на текущую дату.This method tries to ignore unrecognized data, if possible, and fills in missing month, day, and year information with the current date. Если s содержит только дату и время, этот метод предполагает, что время составляет 12:00 полночь.If s contains only a date and no time, this method assumes the time is 12:00 midnight. Если s содержит компонент даты с двузначным годом, он преобразуется в год текущего календаря языка и региональных параметров в соответствии со значением 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. Любой начальный, внутренний или конечный символ пробела в s не учитывается.Any leading, inner, or trailing white space character in s is ignored. Дата и время могут быть заключены в скобки с парой начальных и конечных символов РЕШЕТКи (' # ', U + 0023), а также могут заканчиваться одним или несколькими символами 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).

DateTime.TryParse(String, DateTime) Поскольку метод пытается проанализировать строковое представление даты и времени с помощью правил форматирования текущего языка и региональных параметров, попытка выполнить синтаксический анализ определенной строки в разных культурах может завершиться неудачей или возвращать разные результаты.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. Если конкретный формат даты и времени будет анализироваться по разным языкам, используйте DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) метод или одну из перегрузок TryParseExact метода и укажите описатель формата.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.

Если s является строковым представлением високосного дня в високосном году в текущем календаре, метод s анализируется успешно.If s is the string representation of a leap day in a leap year in the current calendar, the method parses s successfully. Если s является строковым представлением високосного дня в невисокосном году текущего календаря текущего языка и региональных параметров, операция синтаксического анализа завершается ошибкой и метод возвращает 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.

Если s не содержит сведений о часовом result поясе DateTime , содержит Kind значение, DateTimeKind.Unspecified свойство которого является моментом возврата метода.If s contains no time zone information, result contains a DateTime value whose Kind property is DateTimeKind.Unspecified when the method returns. Если result строка для синтаксического анализа содержит сведения о часовом поясе, DateTime содержит значение, свойство DateTimeKind.Local которого Kind является моментом возврата метода.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.

Примечания для тех, кто вызывает этот метод

На форматирование влияют свойства текущего DateTimeFormatInfo объекта, которые по умолчанию наследуются из элемента язык и региональные стандарты панели управления.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. Метод может неожиданно завершиться с ошибкой False и возвращать DateSeparator значение TimeSeparator , если для текущего свойства и задано одно или несколько значений. TryParseThe TryParse method can unexpectedly fail and return False if the current DateSeparator and TimeSeparator properties are set to the same value.

Дополнительно

TryParse(String, IFormatProvider, DateTimeStyles, DateTime) TryParse(String, IFormatProvider, DateTimeStyles, DateTime) TryParse(String, IFormatProvider, DateTimeStyles, DateTime) TryParse(String, IFormatProvider, DateTimeStyles, DateTime)

Преобразует заданное строковое представление даты и времени в его эквивалент DateTime, используя указанную информацию о форматировании, связанную с языком и региональными параметрами, и возвращает значение, которое показывает успешность преобразования.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 *  -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, styles As DateTimeStyles, ByRef result As DateTime) As Boolean

Параметры

s
String String String String

Строка, содержащая дату и время, которые нужно преобразовать.A string containing a date and time to convert.

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

Объект, который предоставляет сведения о форматировании параметра s в зависимости от языка и региональных параметров.An object that supplies culture-specific formatting information about s.

styles
DateTimeStyles DateTimeStyles DateTimeStyles DateTimeStyles

Побитовая комбинация значений перечисления, которая определяет, как интерпретировать проанализированную дату по отношению к текущему часовому поясу или текущей дате.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. Обычно указывается значение None.A typical value to specify is None.

result
DateTime DateTime DateTime DateTime

После возврата из этого метода, содержит значение DateTime, эквивалентное дате и времени, заданным в параметре s, если преобразование прошло успешно, или значение MinValue, если преобразование завершилось неудачей.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. Преобразование завершается неудачей, если значение параметра s равно null или пустой строке ("") или не содержит допустимого строкового представления даты и времени.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. Этот параметр передается неинициализированным.This parameter is passed uninitialized.

Возвраты

Значение true, если параметр s успешно преобразован; в противном случае — значение false.true if the s parameter was converted successfully; otherwise, false.

Исключения

styles не является допустимым значением DateTimeStyles.styles is not a valid DateTimeStyles value.

- или --or- styles содержит недопустимое сочетание значений DateTimeStyles (например, и AssumeLocal, и AssumeUniversal ).styles contains an invalid combination of DateTimeStyles values (for example, both AssumeLocal and AssumeUniversal).

provider является нейтральным языком и региональными параметрами и не может использоваться в операции анализа.provider is a neutral culture and cannot be used in a parsing operation.

Примеры

В следующем примере показан 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.

Комментарии

DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) Метод анализирует строку, которая может содержать дату, время и сведения о часовом поясе.The DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) method parses a string that can contain date, time, and time zone information. Он аналогичен DateTime.Parse(String, IFormatProvider, DateTimeStyles) методу, за исключением того DateTime.TryParse(String, DateTime) , что метод не создает исключение, если преобразование завершается неудачей.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.

Этот метод пытается пропускать нераспознанные данные и s полностью выполнить синтаксический анализ.This method attempts to ignore unrecognized data and parse s completely. Если s содержит время, но не имеет даты, метод по умолчанию заменяет текущую дату или, если styles включает NoCurrentDateDefault флаг, он подставляет 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. Если s параметр содержит дату, но не имеет времени, в качестве времени по умолчанию используется 12:00 полночь.If s contains a date but no time, 12:00 midnight is used as the default time. Если дата есть, но компонент года состоит только из двух цифр, он преобразуется в год в provider текущем календаре параметра в зависимости от значения 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. Любые начальные, внутренние или конечные пробелы в s не учитываются.Any leading, inner, or trailing white space characters in s are ignored. Дата и время могут быть заключены в скобки с парой начальных и конечных символов РЕШЕТКи (' # ', U + 0023), а также могут заканчиваться одним или несколькими символами 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).

Конкретные допустимые форматы для элементов даты и времени, а также имена и символы, используемые в датах и времени, определяются provider параметром, который может принимать любое из следующих значений: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:

Если значением параметра provider является null, используется текущий язык и региональные параметры.If provider is null, the current culture is used.

Если s является строковым представлением високосного дня в високосном году в текущем календаре, метод s анализируется успешно.If s is the string representation of a leap day in a leap year in the current calendar, the method parses s successfully. Если s является строковым представлением високосного дня в невисокосном году в текущем providerкалендаре, операция синтаксического анализа завершается ошибкой и метод возвращает 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 Параметр определяет точную интерпретацию проанализированной строки и способ ее обработки операцией синтаксического анализа.The styles parameter defines the precise interpretation of the parsed string and how the parse operation should handle it. Это может быть один или несколько членов DateTimeStyles перечисления, как описано в следующей таблице.It can be one or more members of the DateTimeStyles enumeration, as described in the following table.

DateTimeStyles, элементDateTimeStyles member ОписаниеDescription
AdjustToUniversal Выполняет синтаксический анализ и, при необходимости, преобразует его в время в формате UTC. sParses s and, if necessary, converts it to UTC. Если s параметр включает смещение часового пояса s или не содержит сведений о часовом DateTimeStyles.AssumeLocal поясе, но styles включает флаг, метод анализирует строку, вызывает ToUniversalTime , чтобы преобразовать возвращенное DateTime значение в формат UTC. и присваивает Kind 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. Если s указывает, что он представляет время в формате s UTC или не содержит сведений о часовом DateTimeStyles.AssumeUniversal поясе, но styles включает флаг, метод анализирует строку, не выполняет преобразование часового пояса для DateTime возвращаемого и присваивает Kind 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. Во всех остальных случаях флаг не оказывает никакого влияния.In all other cases, the flag has no effect.
AllowInnerWhite Несмотря на допустимость, это значение игнорируется.Although valid, this value is ignored. В элементах sдаты и времени разрешены внутренние пробелы.Inner white space is permitted in the date and time elements of s.
AllowLeadingWhite Несмотря на допустимость, это значение игнорируется.Although valid, this value is ignored. Начальные пробелы разрешены в элементах sдаты и времени.Leading white space is permitted in the date and time elements of s.
AllowTrailingWhite Несмотря на допустимость, это значение игнорируется.Although valid, this value is ignored. Конечные пробелы разрешены в элементах sдаты и времени в.Trailing white space is permitted in the date and time elements of s.
AllowWhiteSpaces Указывает, s что может содержать начальные, внутренние и конечные пробелы.Specifies that s may contain leading, inner, and trailing white spaces. Это поведение установлено по умолчанию.This is the default behavior. Его нельзя переопределить, указав более жесткое DateTimeStyles значение перечисления, такое как. DateTimeStyles.NoneIt cannot be overridden by supplying a more restrictive DateTimeStyles enumeration value such as DateTimeStyles.None.
AssumeLocal Указывает, что s при отсутствии сведений о часовом поясе предполагается, что оно представляет местное время.Specifies that if s lacks any time zone information, it is assumed to represent a local time. Если флаг не указан Kind , свойство возвращаемого DateTime значения устанавливается в DateTimeKind.Localзначение. DateTimeStyles.AdjustToUniversalUnless the DateTimeStyles.AdjustToUniversal flag is present, the Kind property of the returned DateTime value is set to DateTimeKind.Local.
AssumeUniversal Указывает, что s при отсутствии сведений о часовом поясе предполагается, что оно представляет время в формате UTC.Specifies that if s lacks any time zone information, it is assumed to represent UTC. Если флаг не указан, метод преобразует возвращенное DateTime значение из времени в формате UTC в местное время и устанавливает Kind для его DateTimeKind.Localсвойства значение. DateTimeStyles.AdjustToUniversalUnless 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 Несмотря на допустимость, это значение игнорируется.Although valid, this value is ignored.
RoundtripKind Для строк, содержащих сведения о часовом поясе, пытается предотвратить преобразование строки даты и времени в DateTime значение Kind со свойством 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. Как правило, такая строка создается путем вызова DateTime.ToString(String) метода с помощью описателей стандартного формата "o", "r" или "u".Typically, such a string is created by calling the DateTime.ToString(String) method using either the "o", "r", or "u" standard format specifiers.

Если s не содержит сведений о часовом поясе DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) , метод DateTime возвращает значение Kind , свойство DateTimeKind.Unspecified которого равно styles , если флаг не указывает иное.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. Если s содержит сведения о часовом поясе или часовом DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) поясе, метод выполняет все необходимое преобразование времени и возвращает одно из следующих: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:

Это поведение можно переопределить с помощью DateTimeStyles.RoundtripKind флага.This behavior can be overridden by using the DateTimeStyles.RoundtripKind flag.

Анализ пользовательских культурParsing Custom Cultures

При синтаксическом анализе строки даты и времени, созданной для пользовательского языка и региональных TryParseExact параметров, используйте метод TryParse вместо метода, чтобы повысить вероятность того, что операция анализа будет выполнена.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. Строка даты и времени пользовательского языка и региональных параметров может быть сложной и сложной для анализа.A custom culture date and time string can be complicated and difficult to parse. TryParse Метод пытается выполнить синтаксический анализ строки с несколькими неявными шаблонами синтаксического анализа, все из которых может завершиться ошибкой.The TryParse method attempts to parse a string with several implicit parse patterns, all of which might fail. В отличие от этого TryParseExact , метод требует явного назначения одного или более точных шаблонов анализа, которые, вероятнее всего, будут успешны.In contrast, the TryParseExact method requires you to explicitly designate one or more exact parse patterns that are likely to succeed.

Дополнительные сведения о пользовательских культурах см. в System.Globalization.CultureAndRegionInfoBuilder разделе класс.For more information about custom cultures, see the System.Globalization.CultureAndRegionInfoBuilder class.

Примечания для тех, кто вызывает этот метод

На форматирование влияют свойства текущего DateTimeFormatInfo объекта, предоставляемые provider параметром.Formatting is influenced by properties of the current DateTimeFormatInfo object, which is supplied by the provider parameter. Метод может неожиданно завершиться с ошибкой False и возвращать DateSeparator значение TimeSeparator , если для текущего свойства и задано одно или несколько значений. TryParseThe TryParse method can unexpectedly fail and return False if the current DateSeparator and TimeSeparator properties are set to the same value.

Дополнительно

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

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> *  -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As DateTime) As Boolean

Параметры

Возвраты

Применяется к