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.

public:
 static DateTimeOffset Parse(System::String ^ input);
public static DateTimeOffset Parse (string input);
static member Parse : string -> DateTimeOffset
Public Shared Function Parse (input As String) As DateTimeOffset

Параметры

input
String

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

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

DateTimeOffset

Объект, эквивалентный дате и времени, содержащимся в параметре 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());
// String with date only
let dateString = "05/01/2008"
let offsetDate = DateTimeOffset.Parse dateString
printfn $"{offsetDate}"

// String with time only
let dateString = "11:36 PM"
let offsetDate = DateTimeOffset.Parse dateString
printfn $"{offsetDate}"

// String with date and offset
let dateString = "05/01/2008 +1:00"
let offsetDate = DateTimeOffset.Parse dateString
printfn $"{offsetDate}"

// String with day abbreviation
let dateString = "Thu May 01, 2008"
let offsetDate = DateTimeOffset.Parse(dateString)
printfn $"{offsetDate}"
Dim dateString As String
Dim offsetDate As DateTimeOffset

' String with date only
dateString = "05/01/2008"
offsetDate = DateTimeOffset.Parse(dateString)
Console.WriteLine(offsetDate.ToString())   ' Displays 5/1/2008 12:00:00 AM -07:00  

' String with time only
dateString = "11:36 PM"
offsetDate = DateTimeOffset.Parse(dateString)
Console.WriteLine(offsetDate.ToString())   ' Displays 3/26/2007 11:36:00 PM -07:00

' String with date and offset 
dateString = "05/01/2008 +7:00"
offsetDate = DateTimeOffset.Parse(dateString)
Console.WriteLine(offsetDate.ToString())   ' Displays 5/1/2008 12:00:00 AM +07:00

' String with day abbreviation
dateString = "Thu May 01, 2008"
offsetDate = DateTimeOffset.Parse(dateString)
Console.WriteLine(offsetDate.ToString())   ' Displays 5/1/2008 12:00:00 AM -07:00

Комментарии

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

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

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

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

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

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

Parse(ReadOnlySpan<Char>, IFormatProvider)

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

public:
 static DateTimeOffset Parse(ReadOnlySpan<char> s, IFormatProvider ^ provider) = ISpanParsable<DateTimeOffset>::Parse;
public static DateTimeOffset Parse (ReadOnlySpan<char> s, IFormatProvider? provider);
static member Parse : ReadOnlySpan<char> * IFormatProvider -> DateTimeOffset
Public Shared Function Parse (s As ReadOnlySpan(Of Char), provider As IFormatProvider) As DateTimeOffset

Параметры

provider
IFormatProvider

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

DateTimeOffset

Результат синтаксического анализа s.

Реализации

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

Parse(String, IFormatProvider)

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

public:
 static DateTimeOffset Parse(System::String ^ input, IFormatProvider ^ formatProvider);
public:
 static DateTimeOffset Parse(System::String ^ input, IFormatProvider ^ formatProvider) = IParsable<DateTimeOffset>::Parse;
public static DateTimeOffset Parse (string input, IFormatProvider formatProvider);
public static DateTimeOffset Parse (string input, IFormatProvider? formatProvider);
static member Parse : string * IFormatProvider -> DateTimeOffset
Public Shared Function Parse (input As String, formatProvider As IFormatProvider) As DateTimeOffset

Параметры

input
String

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

formatProvider
IFormatProvider

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

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

DateTimeOffset

Объект, эквивалентный дате и времени, содержащимся в параметре 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
let fmt = CultureInfo("fr-fr").DateTimeFormat
let dateString = "03-12-07"
let offsetDate = DateTimeOffset.Parse(dateString, fmt)
printfn $"{dateString} returns {offsetDate}"

let dateString = "15/09/07 08:45:00 +1:00"
let offsetDate = DateTimeOffset.Parse(dateString, fmt)
printfn $"{dateString} returns {offsetDate}"

let dateString = "mar. 1 janvier 2008 1:00:00 +1:00"
let offsetDate = DateTimeOffset.Parse(dateString, fmt)
printfn $"{dateString} returns {offsetDate}"

// 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
Dim fmt As DateTimeFormatInfo = New CultureInfo("fr-fr").DateTimeFormat
Dim dateString As String
Dim offsetDate As DateTimeOffset

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

Комментарии

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

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

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

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

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

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

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

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

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

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

Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)

Преобразует заданное представление даты и времени в виде диапазона в его эквивалент 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);
static member Parse : ReadOnlySpan<char> * IFormatProvider * System.Globalization.DateTimeStyles -> DateTimeOffset
Public Shared Function Parse (input As ReadOnlySpan(Of Char), Optional formatProvider As IFormatProvider = Nothing, Optional styles As DateTimeStyles = System.Globalization.DateTimeStyles.None) As DateTimeOffset

Параметры

input
ReadOnlySpan<Char>

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

formatProvider
IFormatProvider

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

styles
DateTimeStyles

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

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

DateTimeOffset

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

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

Parse(String, IFormatProvider, DateTimeStyles)

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

public:
 static DateTimeOffset Parse(System::String ^ input, IFormatProvider ^ formatProvider, System::Globalization::DateTimeStyles styles);
public static DateTimeOffset Parse (string input, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles);
public static DateTimeOffset Parse (string input, IFormatProvider? formatProvider, System.Globalization.DateTimeStyles styles);
static member Parse : string * IFormatProvider * System.Globalization.DateTimeStyles -> DateTimeOffset
Public Shared Function Parse (input As String, formatProvider As IFormatProvider, styles As DateTimeStyles) As DateTimeOffset

Параметры

input
String

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

formatProvider
IFormatProvider

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

styles
DateTimeStyles

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

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

DateTimeOffset

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

Исключения

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

-или-

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

-или-

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

-или-

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

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

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

-или-

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

Примеры

В следующем примере показан эффект передачи DateTimeStyles.AssumeLocalDateTimeStyles.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
let dateString = "05/01/2008 6:00:00"
// Assume time is local
let offsetDate = DateTimeOffset.Parse(dateString, null, DateTimeStyles.AssumeLocal)
printfn $"{offsetDate}"   // Displays 5/1/2008 6:00:00 AM -07:00

// Assume time is UTC
let offsetDate = DateTimeOffset.Parse(dateString, null, DateTimeStyles.AssumeUniversal)
printfn $"{offsetDate}"   // Displays 5/1/2008 6:00:00 AM +00:00

// Parse and convert to UTC
let dateString = "05/01/2008 6:00:00AM +5:00"
let offsetDate = DateTimeOffset.Parse(dateString, null, DateTimeStyles.AdjustToUniversal)
printfn $"{offsetDate}"   // Displays 5/1/2008 1:00:00 AM +00:00
Dim dateString As String
Dim offsetDate As DateTimeOffset

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

' Assume time is UTC
offsetDate = DateTimeOffset.Parse(dateString, Nothing, 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, Nothing, DateTimeStyles.AdjustToUniversal)
Console.WriteLine(offsetDate.ToString())   ' Displays 5/1/2008 1:00:00 AM +00:00

Комментарии

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

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

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

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

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

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

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

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

Положительный или отрицательный знак, используемый в <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 параметр.

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

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