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

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


DateTimeOffset.Parse Метод

Определение

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

Перегрузки

Parse(String)

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

Parse(ReadOnlySpan<Char>, IFormatProvider)

Анализирует диапазон символов в значение.

Parse(String, IFormatProvider)

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

Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)

Преобразует заданное представление даты и времени в виде диапазона в его эквивалент DateTimeOffset, используя указанные сведения о формате для определенного языка и региональных параметров, а также указанный стиль форматирования.

Parse(String, IFormatProvider, DateTimeStyles)

Преобразует заданное строковое представление даты и времени в его эквивалент DateTimeOffset, используя указанную информацию о форматировании, связанную с языком и региональными параметрами, а также заданный стиль форматирования.

Комментарии

Важно!

Эры в японских календарях основаны на периодах царствования императоров. Таким образом, ожидается наступление новой эры. Например, 1 мая 2019 года в JapaneseCalendar и JapaneseLunisolarCalendar отмечено как начало эры Рэйва. Изменение эры затрагивает все приложения, использующие эти календари. Дополнительные сведения и определение того, затронуты ли ваши приложения, см. в статье Обработка новой эры в японском календаре в .NET. Сведения о тестировании приложений в системах Windows для обеспечения их готовности к изменению эпохи см. в статье Подготовка приложения к изменению японской эры. Сведения о функциях в .NET, поддерживающих календари с несколькими эрами, а также рекомендации по работе с календарями, поддерживающими несколько эпох, см. в статье Работа с эрами.

Parse(String)

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

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

public static DateTimeOffset Parse (string input);

Параметры

input
String

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

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

Объект, эквивалентный дате и времени, содержащимся в параметре input.

Исключения

Смещение больше 14 часов или меньше -14 часов.

input имеет значение null.

Параметр input не содержит допустимое строковое представление даты и времени.

-или-

input содержит строковое представление смещения без даты или времени.

Примеры

В следующем примере метод вызывается Parse(String) для анализа нескольких строк даты и времени. Пример включает выходные данные от 22 марта 2007 г. в системе с языком и региональными параметрами en-us.

string dateString;
DateTimeOffset offsetDate;

// String with date only
dateString = "05/01/2008";
offsetDate = DateTimeOffset.Parse(dateString);
Console.WriteLine(offsetDate.ToString());

// String with time only
dateString = "11:36 PM";
offsetDate = DateTimeOffset.Parse(dateString);
Console.WriteLine(offsetDate.ToString());

// String with date and offset
dateString = "05/01/2008 +1:00";
offsetDate = DateTimeOffset.Parse(dateString);
Console.WriteLine(offsetDate.ToString());

// String with day abbreviation
dateString = "Thu May 01, 2008";
offsetDate = DateTimeOffset.Parse(dateString);
Console.WriteLine(offsetDate.ToString());

Комментарии

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

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

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

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

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

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

.NET 9 и другие версии
Продукт Версии
.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
.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

Parse(ReadOnlySpan<Char>, IFormatProvider)

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

Анализирует диапазон символов в значение.

public static DateTimeOffset Parse (ReadOnlySpan<char> s, IFormatProvider? provider);

Параметры

s
ReadOnlySpan<Char>

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

provider
IFormatProvider

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

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

Результат анализа s.

Реализации

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

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

Parse(String, IFormatProvider)

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

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

public static DateTimeOffset Parse (string input, IFormatProvider formatProvider);
public static DateTimeOffset Parse (string input, IFormatProvider? formatProvider);

Параметры

input
String

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

formatProvider
IFormatProvider

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

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

Объект, эквивалентный дате и времени, содержащимся в параметре input, в соответствии со значением параметра formatProvider.

Реализации

Исключения

Смещение больше 14 часов или меньше -14 часов.

input имеет значение null.

Параметр input не содержит допустимое строковое представление даты и времени.

-или-

input содержит строковое представление смещения без даты или времени.

Примеры

В следующем примере выполняется анализ строк даты и времени, отформатированных для языка и региональных параметров fr-fr, и их отображение с использованием языка и региональных параметров en-us локальной системы по умолчанию.

DateTimeFormatInfo fmt = new CultureInfo("fr-fr").DateTimeFormat;
string dateString;
DateTimeOffset offsetDate;

dateString = "03-12-07";
offsetDate = DateTimeOffset.Parse(dateString, fmt);
Console.WriteLine("{0} returns {1}",
                  dateString,
                  offsetDate.ToString());

dateString = "15/09/07 08:45:00 +1:00";
offsetDate = DateTimeOffset.Parse(dateString, fmt);
Console.WriteLine("{0} returns {1}",
                  dateString,
                  offsetDate.ToString());

dateString = "mar. 1 janvier 2008 1:00:00 +1:00";
offsetDate = DateTimeOffset.Parse(dateString, fmt);
Console.WriteLine("{0} returns {1}",
                  dateString,
                  offsetDate.ToString());
// The example displays the following output to the console:
//    03-12-07 returns 12/3/2007 12:00:00 AM -08:00
//    15/09/07 08:45:00 +1:00 returns 9/15/2007 8:45:00 AM +01:00
//    mar. 1 janvier 2008 1:00:00 +1:00 returns 1/1/2008 1:00:00 AM +01:00

Комментарии

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

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

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

Формат этих трех элементов определяется параметром formatProvider , который может быть следующим:

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

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

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

Знак "положительный" или "отрицательный", используемый в <offset> , должен иметь значение "+" или "-". Он не определяется свойствами PositiveSignNumberFormatInfo или NegativeSign объекта formatProvider параметра .

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

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

.NET 9 и другие версии
Продукт Версии
.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
.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

Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)

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

Преобразует заданное представление даты и времени в виде диапазона в его эквивалент DateTimeOffset, используя указанные сведения о формате для определенного языка и региональных параметров, а также указанный стиль форматирования.

public static DateTimeOffset Parse (ReadOnlySpan<char> input, IFormatProvider? formatProvider = default, System.Globalization.DateTimeStyles styles = System.Globalization.DateTimeStyles.None);
public static DateTimeOffset Parse (ReadOnlySpan<char> input, IFormatProvider formatProvider = default, System.Globalization.DateTimeStyles styles = System.Globalization.DateTimeStyles.None);

Параметры

input
ReadOnlySpan<Char>

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

formatProvider
IFormatProvider

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

styles
DateTimeStyles

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

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

Объект, эквивалентный дате и времени, содержащимся в параметре input, в соответствии со значениями параметров formatProvider и styles.

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

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

Parse(String, IFormatProvider, DateTimeStyles)

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

Преобразует заданное строковое представление даты и времени в его эквивалент DateTimeOffset, используя указанную информацию о форматировании, связанную с языком и региональными параметрами, а также заданный стиль форматирования.

public static DateTimeOffset Parse (string input, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles);
public static DateTimeOffset Parse (string input, IFormatProvider? formatProvider, System.Globalization.DateTimeStyles styles);

Параметры

input
String

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

formatProvider
IFormatProvider

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

styles
DateTimeStyles

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

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

Объект, эквивалентный дате и времени, содержащимся в параметре input, в соответствии со значениями параметров formatProvider и styles.

Исключения

Смещение больше 14 часов или меньше -14 часов.

-или-

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

-или-

styles содержит неподдерживаемое значение DateTimeStyles.

-или-

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

input имеет значение null.

Параметр input не содержит допустимое строковое представление даты и времени.

-или-

input содержит строковое представление смещения без даты или времени.

Примеры

В следующем примере показан результат передачи значений DateTimeStyles.AssumeLocal, DateTimeStyles.AssumeUniversalи DateTimeStyles.AdjustToUniversal в styles параметр Parse(String, IFormatProvider, DateTimeStyles) метода .

string dateString;
DateTimeOffset offsetDate;

dateString = "05/01/2008 6:00:00";
// Assume time is local
offsetDate = DateTimeOffset.Parse(dateString, null, DateTimeStyles.AssumeLocal);
Console.WriteLine(offsetDate.ToString());   // Displays 5/1/2008 6:00:00 AM -07:00

// Assume time is UTC
offsetDate = DateTimeOffset.Parse(dateString, null, DateTimeStyles.AssumeUniversal);
Console.WriteLine(offsetDate.ToString());   // Displays 5/1/2008 6:00:00 AM +00:00

// Parse and convert to UTC
dateString = "05/01/2008 6:00:00AM +5:00";
offsetDate = DateTimeOffset.Parse(dateString, null, DateTimeStyles.AdjustToUniversal);
Console.WriteLine(offsetDate.ToString());   // Displays 5/1/2008 1:00:00 AM +00:00

Комментарии

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

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

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

Формат этих трех элементов определяется параметром formatProvider , который может быть следующим:

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

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

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

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

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

В следующей таблице показаны поддерживаемые System.Globalization.DateTimeStyles элементы перечисления .

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

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

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

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

.NET 9 и другие версии
Продукт Версии
.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
.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