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


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(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

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

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

Объект, эквивалентный дате и времени, содержащимся в параметре 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) анализирует строку с тремя элементами, которые могут отображаться в любом порядке и разделены пробелами. Эти три элемента, как показано в следующей таблице.

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

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

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

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

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

Parse(ReadOnlySpan<Char>, IFormatProvider)

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

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

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

Параметры

s
ReadOnlySpan<Char>

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

provider
IFormatProvider

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

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

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

Реализации

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

Parse(String, IFormatProvider)

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

Преобразует заданное строковое представление даты и времени в его эквивалент 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, связанные с языком и региональными параметрами.

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

Объект, эквивалентный дате и времени, содержащимся в параметре 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

Комментарии

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

Элемент Пример
<Дата> "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 параметра .

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

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

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);
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.

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

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

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

Parse(String, IFormatProvider, DateTimeStyles)

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

Преобразует заданное строковое представление даты и времени в его эквивалент 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.

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

Объект, эквивалентный дате и времени, содержащимся в параметре 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
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

Комментарии

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

Элемент Пример
<Дата> "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 параметр, возникает исключение .

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

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