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


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 г. отмечено начало эпохи Reiwa в JapaneseCalendar и JapaneseLunisolarCalendar. Такое изменение эпохи влияет на все приложения, использующие эти календари. Для получения дополнительной информации и определения влияния на ваши приложения см. статью Обработка новой эпохи в японском календаре в .NET. Сведения о тестировании ваших приложений на системах Windows для обеспечения их готовности к изменению эпохи см. в разделе Подготовка приложения к изменению японской эпохи. Функции в .NET, поддерживающие календари с несколькими эрами, и рекомендации по работе с календарями, поддерживающими несколько эпох, см. в разделе Работа с эрами.

Parse(String)

Исходный код:
DateTimeOffset.cs
Исходный код:
DateTimeOffset.cs
Исходный код:
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"
<Время> "1:02:03 ВЕЧЕРА"
<Смещение> "-7:30"

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

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

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

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

Parse(ReadOnlySpan<Char>, IFormatProvider)

Исходный код:
DateTimeOffset.cs
Исходный код:
DateTimeOffset.cs
Исходный код:
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.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"
<Время> "1:02:03 ВЕЧЕРА"
<Смещение> "-7:30"

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

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

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

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

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

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

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

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

Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)

Исходный код:
DateTimeOffset.cs
Исходный код:
DateTimeOffset.cs
Исходный код:
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.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 значений Parse(String, IFormatProvider, DateTimeStyles)styles в параметр метода.

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"
<Время> "1:02:03 ВЕЧЕРА"
<Смещение> "-7:30"

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

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

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

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

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

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

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

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

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

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

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

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