Прочитать на английском

Поделиться через


DateTimeOffset.TryParse Метод

Определение

Преобразует заданное строковое представление даты и времени в его эквивалент DateTimeOffset.

Перегрузки

TryParse(String, IFormatProvider, DateTimeStyles, DateTimeOffset)

Предпринимает попытку преобразования указанного строкового представления даты и времени в его эквивалент DateTimeOffset и возвращает значение, позволяющее определить успешность преобразования.

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

Пытается преобразовать указанное представление даты и времени в виде диапазона в его эквивалент типа DateTimeOffset и возвращает значение, которое указывает на то, успешно ли выполнено преобразование.

TryParse(String, IFormatProvider, DateTimeOffset)

Пытается проанализировать строку в значение.

TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeOffset)

Пытается проанализировать диапазон символов в значение.

TryParse(ReadOnlySpan<Char>, DateTimeOffset)

Пытается преобразовать указанное представление даты и времени в виде диапазона в его эквивалент типа DateTimeOffset и возвращает значение, которое указывает на то, успешно ли выполнено преобразование.

TryParse(String, DateTimeOffset)

Предпринимает попытку преобразования указанного строкового представления даты и времени в его эквивалент DateTimeOffset и возвращает значение, позволяющее определить успешность преобразования.

TryParse(String, IFormatProvider, DateTimeStyles, DateTimeOffset)

Исходный код:
DateTimeOffset.cs
Исходный код:
DateTimeOffset.cs
Исходный код:
DateTimeOffset.cs

Предпринимает попытку преобразования указанного строкового представления даты и времени в его эквивалент DateTimeOffset и возвращает значение, позволяющее определить успешность преобразования.

C#
public static bool TryParse(string input, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out DateTimeOffset result);
C#
public static bool TryParse(string? input, IFormatProvider? formatProvider, System.Globalization.DateTimeStyles styles, out DateTimeOffset result);

Параметры

input
String

Строка, содержащая дату и время, которые нужно преобразовать.

formatProvider
IFormatProvider

Объект, предоставляющий сведения о форматировании параметра input в зависимости от языка и региональных параметров.

styles
DateTimeStyles

Побитовая комбинация значений перечисления, которая показывает разрешенный формат параметра input.

result
DateTimeOffset

При возврате метода содержит DateTimeOffset значение, эквивалентное дате и времени input, если преобразование выполнено успешно, или DateTimeOffset.MinValue, если преобразование завершилось сбоем. Преобразование завершается неудачей, если значение параметра input равно null или в нем не содержится допустимое строковое представление даты и времени. Этот параметр передается неинициализированным.

Возвращаемое значение

Значение true, если параметр input успешно преобразован; в противном случае — значение false.

Исключения

Параметр styles включает неопределенное значение DateTimeStyles.

-или-

Тип NoCurrentDateDefault не поддерживается.

-или-

Параметр styles содержит взаимоисключающие значения DateTimeStyles.

Примеры

В следующем примере вызывается TryParse(String, IFormatProvider, DateTimeStyles, DateTimeOffset) метод с различными DateTimeStyles значениями для анализа некоторых строк с различными форматами даты и времени.

C#
string dateString;
DateTimeOffset parsedDate;

dateString = "05/01/2008 6:00:00";
// Assume time is local
if (DateTimeOffset.TryParse(dateString, null as IFormatProvider,
                            DateTimeStyles.AssumeLocal,
                            out parsedDate))
   Console.WriteLine("'{0}' was converted to {1}.",
                     dateString, parsedDate.ToString());
else
   Console.WriteLine("Unable to parse '{0}'.", dateString);

// Assume time is UTC
if (DateTimeOffset.TryParse(dateString, null as IFormatProvider,
                            DateTimeStyles.AssumeUniversal,
                            out parsedDate))
   Console.WriteLine("'{0}' was converted to {1}.",
                     dateString, parsedDate.ToString());
else
   Console.WriteLine("Unable to parse '{0}'.", dateString);

// Parse and convert to UTC
dateString = "05/01/2008 6:00:00AM +5:00";
if (DateTimeOffset.TryParse(dateString, null as IFormatProvider,
                           DateTimeStyles.AdjustToUniversal,
                           out parsedDate))
   Console.WriteLine("'{0}' was converted to {1}.",
                     dateString, parsedDate.ToString());
else
   Console.WriteLine("Unable to parse '{0}'.", dateString);
// The example displays the following output to the console:
//    '05/01/2008 6:00:00' was converted to 5/1/2008 6:00:00 AM -07:00.
//    '05/01/2008 6:00:00' was converted to 5/1/2008 6:00:00 AM +00:00.
//    '05/01/2008 6:00:00AM +5:00' was converted to 5/1/2008 1:00:00 AM +00:00.

Комментарии

Эта перегрузка метода похожа TryParse(String, IFormatProvider, DateTimeStyles, DateTimeOffset) на DateTimeOffset.Parse(String, IFormatProvider, DateTimeStyles) метод , за исключением того, что она не создает исключение в случае сбоя преобразования. Метод анализирует строку с тремя элементами, которые могут отображаться в любом порядке и разделяются пробелами. Эти три элемента показаны в следующей таблице.

Элемент Пример
<Дата> "2/10/2007"
<Time> "13:02:03"
<Offset> "-7:30"

Хотя каждый из этих элементов является необязательным, <Offset> не может отображаться сам по себе. Он должен быть указан вместе с датой <> или <временем>. Если <параметр Date> отсутствует, значение по умолчанию — текущий день. Если <дата> присутствует, но ее компонент года состоит только из двух цифр, он преобразуется в год в provider текущем календаре параметра на основе значения Calendar.TwoDigitYearMax свойства . Если <время> отсутствует, его значение по умолчанию — 12:00:00. Если <значение Offset> отсутствует, значением по умолчанию является смещение местного часового пояса или Zero значение DateTimeStyles.AdjustToUniversal или DateTimeStyles.AssumeUniversal указано в styles. При <наличии смещения> оно может представлять либо отрицательное, либо положительное смещение от времени UTC. В любом случае Offset> должен содержать символ знака, <иначе метод возвращает false.

Строка input анализируется с использованием сведений о форматировании, связанных с языком и региональными параметрами, в объекте DateTimeFormatInfo , предоставленном параметром formatProvider . Параметр formatProvider может иметь один из следующих значений:

  • Объект CultureInfo , представляющий язык и региональные параметры, форматирование которого используется в input. Объект DateTimeFormatInfo , возвращаемый свойством CultureInfo.DateTimeFormat , определяет формат, используемый в input.

  • Объект DateTimeFormatInfo , определяющий формат данных даты и времени.

Кроме того, каждый элемент может быть разделен начальным или конечным пробелом, а <компоненты даты> и <времени> могут содержать внутренние пробелы (например, 6: 00:00). <Только компонент Offset> не может содержать внутренние пробелы.

Если provider имеет значение null, CultureInfo используется объект , соответствующий текущему языку и региональным параметрам.

Положительный или отрицательный знак, используемый в <Offset> , должен иметь значение +или -. Он не определяется свойствами PositiveSign или NegativeSign объекта, NumberFormatInfo возвращаемого свойством formatprovider параметра NumberFormat .

Поддерживаются следующие члены перечисления DateTimeStyles :

Элемент DateTimeStyles Комментарии
AdjustToUniversal Анализирует строку, представленную input , и при необходимости преобразует ее в формат UTC. Это эквивалентно анализу строки и последующему вызову метода возвращаемого ToUniversalTime() объекта.
AllowInnerWhite Хотя это значение является допустимым, оно игнорируется. Внутренние пробелы разрешены в компонентах <даты> и <времени> .
AllowLeadingWhite Хотя это значение является допустимым, оно игнорируется. Перед каждым компонентом в анализируемой строке допускается пробел.
AllowTrailingWhite Хотя это значение является допустимым, оно игнорируется. Перед каждым компонентом в анализируемой строке разрешено использовать пробелы в конце.
AllowWhiteSpaces Это поведение по умолчанию. Его нельзя переопределить, указав более строгое DateTimeStyles значение перечисления, например DateTimeStyles.None.
AssumeLocal Указывает, что если в параметре input отсутствует <элемент Offset> , необходимо указать смещение местного часового пояса. Это поведение метода по умолчанию TryParse(String, IFormatProvider, DateTimeStyles, DateTimeOffset) .
AssumeUniversal Указывает, что если в параметре input<отсутствует элемент Offset> , необходимо указать смещение в формате UTC (00:00).
None Хотя это значение является допустимым, оно игнорируется и не оказывает никакого влияния.
RoundtripKind Так как структура DateTimeOffset не включает Kind свойство, это значение не оказывает никакого влияния.

Не поддерживается DateTimeStyles.NoCurrentDateDefault только значение . Если ArgumentException это значение включено в styles параметр, возникает исключение .

См. также раздел

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

.NET 10 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

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

Исходный код:
DateTimeOffset.cs
Исходный код:
DateTimeOffset.cs
Исходный код:
DateTimeOffset.cs

Пытается преобразовать указанное представление даты и времени в виде диапазона в его эквивалент типа DateTimeOffset и возвращает значение, которое указывает на то, успешно ли выполнено преобразование.

C#
public static bool TryParse(ReadOnlySpan<char> input, IFormatProvider? formatProvider, System.Globalization.DateTimeStyles styles, out DateTimeOffset result);
C#
public static bool TryParse(ReadOnlySpan<char> input, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out DateTimeOffset result);

Параметры

input
ReadOnlySpan<Char>

Диапазон, содержащий символы, которые представляют преобразуемые дату и время.

formatProvider
IFormatProvider

Объект, предоставляющий сведения о форматировании параметра input в зависимости от языка и региональных параметров.

styles
DateTimeStyles

Побитовая комбинация значений перечисления, которая показывает разрешенный формат параметра input.

result
DateTimeOffset

При возврате метода содержит DateTimeOffset значение, эквивалентное дате и времени input, если преобразование выполнено успешно, или DateTimeOffset.MinValue, если преобразование завершилось сбоем. Преобразование завершается неудачей, если значение параметра input равно null или в нем не содержится допустимое строковое представление даты и времени. Этот параметр передается неинициализированным.

Возвращаемое значение

Значение true, если параметр input успешно преобразован; в противном случае — значение false.

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

.NET 10 и другие версии
Продукт Версии
.NET Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Standard 2.1

TryParse(String, IFormatProvider, DateTimeOffset)

Исходный код:
DateTimeOffset.cs
Исходный код:
DateTimeOffset.cs
Исходный код:
DateTimeOffset.cs

Пытается проанализировать строку в значение.

C#
public static bool TryParse(string? s, IFormatProvider? provider, out DateTimeOffset result);

Параметры

s
String

Строка для анализа.

provider
IFormatProvider

Объект, предоставляющий сведения о форматировании параметра s в зависимости от языка и региональных параметров.

result
DateTimeOffset

При возврате этого метода содержит результат успешного анализа s или неопределенное значение при сбое.

Возвращаемое значение

true Значение , если s анализ выполнен успешно; в противном случае — значение false.

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

.NET 10 и другие версии
Продукт Версии
.NET 7, 8, 9, 10

TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeOffset)

Исходный код:
DateTimeOffset.cs
Исходный код:
DateTimeOffset.cs
Исходный код:
DateTimeOffset.cs

Пытается проанализировать диапазон символов в значение.

C#
public static bool TryParse(ReadOnlySpan<char> s, IFormatProvider? provider, out DateTimeOffset result);

Параметры

s
ReadOnlySpan<Char>

Диапазон символов для анализа.

provider
IFormatProvider

Объект, предоставляющий сведения о форматировании параметра s в зависимости от языка и региональных параметров.

result
DateTimeOffset

При возврате этим методом содержит результат успешного анализа sили неопределенное значение при сбое.

Возвращаемое значение

true Значение , если s анализ выполнен успешно; в противном случае — значение false.

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

.NET 10 и другие версии
Продукт Версии
.NET 7, 8, 9, 10

TryParse(ReadOnlySpan<Char>, DateTimeOffset)

Исходный код:
DateTimeOffset.cs
Исходный код:
DateTimeOffset.cs
Исходный код:
DateTimeOffset.cs

Пытается преобразовать указанное представление даты и времени в виде диапазона в его эквивалент типа DateTimeOffset и возвращает значение, которое указывает на то, успешно ли выполнено преобразование.

C#
public static bool TryParse(ReadOnlySpan<char> input, out DateTimeOffset result);

Параметры

input
ReadOnlySpan<Char>

Диапазон, содержащий символы, которые представляют преобразуемые дату и время.

result
DateTimeOffset

При возврате метода содержит DateTimeOffset эквивалент даты и времени input, если преобразование выполнено успешно, или DateTimeOffset.MinValue, если преобразование завершилось сбоем. Преобразование завершается неудачей, если значение параметра input равно null или в нем не содержится допустимое строковое представление даты и времени. Этот параметр передается неинициализированным.

Возвращаемое значение

Значение true, если параметр input успешно преобразован; в противном случае — значение false.

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

.NET 10 и другие версии
Продукт Версии
.NET Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Standard 2.1

TryParse(String, DateTimeOffset)

Исходный код:
DateTimeOffset.cs
Исходный код:
DateTimeOffset.cs
Исходный код:
DateTimeOffset.cs

Предпринимает попытку преобразования указанного строкового представления даты и времени в его эквивалент DateTimeOffset и возвращает значение, позволяющее определить успешность преобразования.

C#
public static bool TryParse(string input, out DateTimeOffset result);
C#
public static bool TryParse(string? input, out DateTimeOffset result);

Параметры

input
String

Строка, содержащая дату и время, которые нужно преобразовать.

result
DateTimeOffset

При возврате метода содержит DateTimeOffset эквивалент даты и времени input, если преобразование выполнено успешно, или DateTimeOffset.MinValue, если преобразование завершилось сбоем. Преобразование завершается неудачей, если значение параметра input равно null или в нем не содержится допустимое строковое представление даты и времени. Этот параметр передается неинициализированным.

Возвращаемое значение

Значение true, если параметр input успешно преобразован; в противном случае — значение false.

Примеры

В следующем примере метод вызывается TryParse(String, DateTimeOffset) для анализа нескольких строк с различными форматами даты и времени.

C#
DateTimeOffset parsedDate;
string dateString;

// String with date only
dateString = "05/01/2008";
if (DateTimeOffset.TryParse(dateString, out parsedDate))
   Console.WriteLine("{0} was converted to {1}.",
                     dateString, parsedDate);

// String with time only
dateString = "11:36 PM";
if (DateTimeOffset.TryParse(dateString, out parsedDate))
   Console.WriteLine("{0} was converted to {1}.",
                     dateString, parsedDate);

// String with date and offset
dateString = "05/01/2008 +7:00";
if (DateTimeOffset.TryParse(dateString, out parsedDate))
   Console.WriteLine("{0} was converted to {1}.",
                     dateString, parsedDate);

// String with day abbreviation
dateString = "Thu May 01, 2008";
if (DateTimeOffset.TryParse(dateString, out parsedDate))
   Console.WriteLine("{0} was converted to {1}.",
                     dateString, parsedDate);

// String with date, time with AM/PM designator, and offset
dateString = "5/1/2008 10:00 AM -07:00";
if (DateTimeOffset.TryParse(dateString, out parsedDate))
   Console.WriteLine("{0} was converted to {1}.",
                     dateString, parsedDate);
// if (run on 3/29/07, the example displays the following output
// to the console:
//    05/01/2008 was converted to 5/1/2008 12:00:00 AM -07:00.
//    11:36 PM was converted to 3/29/2007 11:36:00 PM -07:00.
//    05/01/2008 +7:00 was converted to 5/1/2008 12:00:00 AM +07:00.
//    Thu May 01, 2008 was converted to 5/1/2008 12:00:00 AM -07:00.
//    5/1/2008 10:00 AM -07:00 was converted to 5/1/2008 10:00:00 AM -07:00.

Комментарии

Эта перегрузка метода похожа TryParse(String, DateTimeOffset) на DateTimeOffset.Parse(String) метод , за исключением того, что она не создает исключение в случае сбоя преобразования. Он анализирует строку с тремя элементами, которые могут отображаться в любом порядке и разделяются пробелами. Эти три элемента показаны в следующей таблице.

Элемент Пример
<Дата> "2/10/2007"
<Time> "13:02:03"
<Offset> "-7:30"

Хотя каждый из этих элементов является необязательным, <Offset> не может отображаться сам по себе. Он должен быть указан вместе с датой <> или <временем>. Если <параметр Date> отсутствует, значение по умолчанию — текущий день. Если <аргумент Date> присутствует, но его компонент года состоит только из двух цифр, он преобразуется в год в текущем календаре текущего Calendar.TwoDigitYearMax языка и региональных параметров на основе значения свойства . Если <время> отсутствует, его значение по умолчанию — 12:00:00. Если <значение Offset> отсутствует, значением по умолчанию является смещение местного часового пояса. При <наличии смещения> оно может представлять либо отрицательное, либо положительное смещение от времени UTC. В любом случае Offset> должен содержать символ знака, <иначе метод возвращает false.

Строка input анализируется с использованием сведений о форматировании в объекте, DateTimeFormatInfo инициализированном для текущего языка и региональных параметров. Чтобы проанализировать строку, содержащую назначенное форматирование, которое не обязательно соответствует значению текущего языка и региональных параметров, используйте TryParseExact метод и предоставьте описатель формата.

См. также раздел

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

.NET 10 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0