DateTime.Parse Метод

Определение

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

Перегрузки

Parse(String)

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

Parse(String, IFormatProvider)

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

Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)

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

Parse(String, IFormatProvider, DateTimeStyles)

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

Примеры

Многочисленные примеры, вызывающие DateTime.Parse метод, помещаются в подразделе « Примечания » этой статьи и в документации по отдельным DateTime.Parse перегрузкам.

Примечание

Некоторые примеры C# в этой статье выполняются во встроенном средстве выполнения кода и на площадке Try.NET. Нажмите на кнопку Выполнить, чтобы выполнить пример в интерактивном окне. После выполнения кода вы можете изменить его и выполнить измененный код, снова нажав на кнопку Выполнить. Либо в интерактивном окне выполняется измененный код, либо, если компиляция завершается с ошибкой, в интерактивном окне отображаются все сообщения об ошибках компилятора C#.

Местный часовой пояс площадки и средства запуска встроенного кода Try.NET указан в формате UTC. Это может повлиять на работу и выходные данные примеров, иллюстрирующих DateTime, DateTimeOffset, типы TimeZoneInfo и их члены.

Вы также можете скачать полный набор DateTime.Parse примеров, которые включены в проект .NET Core для C#.

Комментарии

В этом разделе рассматриваются следующие вопросы.

Какой метод следует вызывать?

Кому Вызов
Проанализируйте строку даты и времени, используя соглашения текущего языка и региональных параметров. Перегрузка Parse(String)
Анализ строки даты и времени с помощью соглашений определенного языка и региональных параметров. Parse(String, IFormatProvider) перегрузка (см. раздел синтаксический анализ и культурные соглашения)
Синтаксический анализ строки даты и времени с помощью специальных элементов стиля (например, пробелов или пустых пробелов). Перегрузка Parse(String, IFormatProvider, DateTimeStyles)
Синтаксический анализ строки даты и времени, которая должна иметь определенный формат. DateTime.ParseExact или DateTime.TryParseExact
Проанализируйте строку даты и времени и выполните преобразование в UTC или местное время. Перегрузка Parse(String, IFormatProvider, DateTimeStyles)
Синтаксический анализ строки даты и времени без обработки исключений. Метод DateTime.TryParse
Restore (циклический обмен) — значение даты и времени, созданное операцией форматирования. Передайте в метод строку стандартного формата "o" или "r" ToString(String) и вызовите Parse(String, IFormatProvider, DateTimeStyles) перегрузку с DateTimeStyles.RoundtripKind
Синтаксический анализ строки даты и времени в фиксированном формате на компьютерах (и, возможно, в культуре). DateTime.ParseExactDateTime.TryParseExactметод или

Анализируемая строка.

ParseМетод пытается преобразовать строковое представление значения даты и времени в его DateTime эквивалент. Он пытается полностью проанализировать входную строку, не вызывая FormatException исключение.

Важно!

Если операция синтаксического анализа завершается неудачей из-за нераспознанного формата строки, Parse метод создает исключение FormatException , а TryParse метод возвращает false . Так как обработка исключений может быть дорогостоящей, следует использовать, Parse когда операция синтаксического анализа должна быть выполнена, так как источник входных данных является доверенным. TryParse является предпочтительным при сбоях анализа, особенно из-за того, что источник входных данных не является доверенным, или вы имеете разумные значения по умолчанию для замены строк, которые не анализируются успешно.

Анализируемая строка может принимать любое из следующих форм:

  • Строка с компонентом даты и времени.

  • Строка с датой, но без компонента времени. Если компонент времени отсутствует, метод принимает значение 12:00 в полночь. Если у компонента даты есть год из двух цифр, он преобразуется в год на основе текущего календаря текущего Calendar.TwoDigitYearMax языка и региональных параметров или текущего календаря указанного языка и региональных параметров (если используется перегрузка с аргументом, отличным от NULL provider ).

  • Строка с компонентом даты, включающая только месяц и год, но не компонент дня. Метод предполагает, что первый день месяца.

  • Строка с компонентом даты, включающая только месяц и день, но не компонент year. Метод предполагает текущий год.

  • Строка со временем, но без компонента даты. Метод принимает текущую дату, если только не вызывает Parse(String, IFormatProvider, DateTimeStyles) перегрузку и не включает DateTimeStyles.NoCurrentDateDefault в styles аргумент. в этом случае метод принимает дату 1 января 0001 года.

  • Строка с компонентом времени, включающий только час и обозначение AM/PM без компонента даты. Метод предполагает, что текущая дата и время не являются минутами и не имеют секунд. Это поведение можно изменить путем вызова Parse(String, IFormatProvider, DateTimeStyles) перегрузки и включения DateTimeStyles.NoCurrentDateDefault в styles аргумент. в этом случае метод принимает дату 1 января 0001 года.

  • Строка, которая включает сведения о часовом поясе и соответствует стандарту ISO 8601. В следующих примерах первая строка обозначает время в формате UTC, а второе — время в часовом поясе в семь часов раньше времени UTC:

    "2008-11-01T19:35:00.0000000 Z"
    "2008-11-01T19:35:00.0000000-07:00"

  • Строка, включающая обозначение GMT и соответствующее формату времени RFC 1123; Например:

    "Кот, 01 ноября 2008 19:35:00 GMT"

  • Строка, содержащая дату и время вместе со сведениями о смещении часового пояса; Например:

    "03/01/2009 05:42:00 -5:00"

В следующем примере выполняется синтаксический анализ строк в каждом из этих форматов с использованием соглашений о форматировании текущего языка и региональных параметров, которые в данном случае являются региональными параметрами en-US:

using System;

public class Example
{
   public static void Main()
   {
      (string dateAsString, string description)[]  dateInfo = { ("08/18/2018 07:22:16", "String with a date and time component"),
                                                                ("08/18/2018", "String with a date component only"),
                                                                ("8/2018", "String with a month and year component only"),
                                                                ("8/18", "String with a month and day component only"),
                                                                ("07:22:16", "String with a time component only"),
                                                                ("7 PM", "String with an hour and AM/PM designator only"),
                                                                ("2018-08-18T07:22:16.0000000Z", "UTC string that conforms to ISO 8601"),
                                                                ("2018-08-18T07:22:16.0000000-07:00", "Non-UTC string that conforms to ISO 8601"),
                                                                ("Sat, 18 Aug 2018 07:22:16 GMT", "String that conforms to RFC 1123"),
                                                                ("08/18/2018 07:22:16 -5:00", "String with date, time, and time zone information" ) };

      Console.WriteLine($"Today is {DateTime.Now:d}\n");

      foreach (var item in dateInfo) {
         Console.WriteLine($"{item.description + ":",-52} '{item.dateAsString}' --> {DateTime.Parse(item.dateAsString)}");
      }
   }
}
// The example displays output like the following:
//   Today is 2/22/2018
//
//   String with a date and time component:               '08/18/2018 07:22:16' --> 8/18/2018 7:22:16 AM
//   String with a date component only:                   '08/18/2018' --> 8/18/2018 12:00:00 AM
//   String with a month and year component only:         '8/2018' --> 8/1/2018 12:00:00 AM
//   String with a month and day component only:          '8/18' --> 8/18/2018 12:00:00 AM
//   String with a time component only:                   '07:22:16' --> 2/22/2018 7:22:16 AM
//   String with an hour and AM/PM designator only:       '7 PM' --> 2/22/2018 7:00:00 PM
//   UTC string that conforms to ISO 8601:                '2018-08-18T07:22:16.0000000Z' --> 8/18/2018 12:22:16 AM
//   Non-UTC string that conforms to ISO 8601:            '2018-08-18T07:22:16.0000000-07:00' --> 8/18/2018 7:22:16 AM
//   String that conforms to RFC 1123:                    'Sat, 18 Aug 2018 07:22:16 GMT' --> 8/18/2018 12:22:16 AM
//   String with date, time, and time zone information:   '08/18/2018 07:22:16 -5:00' --> 8/18/2018 5:22:16 AM

Public Module Strings
   Public Sub Main()
      Dim dateInfo() As (dateAsString As String, description As String) = 
                     { ("08/18/2018 07:22:16", "String with a date and time component"),
                       ("08/18/2018", "String with a date component only"),
                       ("8/2018", "String with a month and year component only"),
                       ("8/18", "String with a month and day component only"),
                       ("07:22:16", "String with a time component only"),
                       ("7 PM", "String with an hour and AM/PM designator only"),
                       ("2018-08-18T07:22:16.0000000Z", "UTC string that conforms to ISO 8601"),   
                       ("2018-08-18T07:22:16.0000000-07:00", "Non-UTC string that conforms to ISO 8601"),
                       ("Sat, 18 Aug 2018 07:22:16 GMT", "String that conforms to RFC 1123"),
                       ("08/18/2018 07:22:16 -5:00", "String with date, time, and time zone information" ) }
   
      Console.WriteLine($"Today is {Date.Now:d}{vbCrLf}")
      
      For Each item in dateInfo
         Console.WriteLine($"{item.description + ":",-52} '{item.dateAsString}' --> {DateTime.Parse(item.dateAsString)}")        
      Next
   End Sub
End Module
' The example displays output like the following:
'   Today is 2/22/2018
'   
'   String with a date and time component:               '08/18/2018 07:22:16' --> 8/18/2018 7:22:16 AM
'   String with a date component only:                   '08/18/2018' --> 8/18/2018 12:00:00 AM
'   String with a month and year component only:         '8/2018' --> 8/1/2018 12:00:00 AM
'   String with a month and day component only:          '8/18' --> 8/18/2018 12:00:00 AM
'   String with a time component only:                   '07:22:16' --> 2/22/2018 7:22:16 AM
'   String with an hour and AM/PM designator only:       '7 PM' --> 2/22/2018 7:00:00 PM
'   UTC string that conforms to ISO 8601:                '2018-08-18T07:22:16.0000000Z' --> 8/18/2018 12:22:16 AM
'   Non-UTC string that conforms to ISO 8601:            '2018-08-18T07:22:16.0000000-07:00' --> 8/18/2018 7:22:16 AM
'   String that conforms to RFC 1123:                    'Sat, 18 Aug 2018 07:22:16 GMT' --> 8/18/2018 12:22:16 AM
'   String with date, time, and time zone information:   '08/18/2018 07:22:16 -5:00' --> 8/18/2018 5:22:16 AM

Если входная строка представляет високосный день в високосном году в календаре, используемом методом анализа (см. раздел синтаксический анализ и культурные соглашения), Parse метод успешно анализирует строку. Если входная строка представляет високосный день в невисокосном году, метод создает исключение FormatException .

Поскольку Parse метод пытается выполнить синтаксический анализ строкового представления даты и времени с помощью правил форматирования текущего или указанного языка и региональных параметров, попытка выполнить синтаксический анализ строки в разных культурах может завершиться неудачно. Чтобы выполнить синтаксический анализ определенного формата даты и времени в разных языковых стандартах, используйте одну из перегрузок DateTime.ParseExact метода и укажите описатель формата.

Синтаксический анализ и культурные соглашения

Все перегрузки Parse метода чувствительны к языку и региональным параметрам, если только строка для анализа (представленная s в следующей таблице) соответствует шаблону ISO 8601. Операция синтаксического анализа использует сведения о форматировании в DateTimeFormatInfo объекте, который является производным следующим образом:

Важно!

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

Если вызван И provider является Сведения о форматировании являются производными от
Parse(String) - Язык и региональные параметры текущего потока ( DateTimeFormatInfo.CurrentInfo свойство)
Parse(String, IFormatProvider) или Parse(String, IFormatProvider, DateTimeStyles) объект DateTimeFormatInfo; Указанный DateTimeFormatInfo объект
Parse(String, IFormatProvider) или Parse(String, IFormatProvider, DateTimeStyles) null Язык и региональные параметры текущего потока ( DateTimeFormatInfo.CurrentInfo свойство)
Parse(String, IFormatProvider) или Parse(String, IFormatProvider, DateTimeStyles) объект CultureInfo; Свойство CultureInfo.DateTimeFormat.
Parse(String, IFormatProvider) или Parse(String, IFormatProvider, DateTimeStyles) Пользовательская IFormatProvider Реализация метод IFormatProvider.GetFormat ;

Если сведения о форматировании являются производными от DateTimeFormatInfo объекта, DateTimeFormatInfo.Calendar свойство определяет календарь, используемый в операции синтаксического анализа.

При синтаксическом анализе строки даты и времени с помощью DateTimeFormatInfo объекта с настроенными параметрами, отличающимися от стандартных параметров, используйте ParseExact метод вместо Parse метода, чтобы повысить вероятность успешного преобразования. Нестандартная строка даты и времени может быть сложной и сложной для анализа. ParseМетод пытается выполнить синтаксический анализ строки с несколькими неявными шаблонами синтаксического анализа, все из которых может завершиться ошибкой. В отличие от этого, ParseExact метод требует явного назначения одного или более точных шаблонов анализа, которые, вероятнее всего, будут успешны. Дополнительные сведения см. в разделе "DateTimeFormatInfo and платформа динамических данных" статьи DateTimeFormatInfo .

Важно!

Обратите внимание, что соглашения о форматировании для определенного языка и региональных параметров являются динамическими и могут быть изменены. Это означает, что операции синтаксического анализа, зависящие от соглашений о форматировании по умолчанию (текущего) языка и региональных параметров или определяющих IFormatProvider объект, представляющий язык и региональные параметры, отличные от инвариантного языка и региональных параметров, могут вызвать непредвиденную ошибку при выполнении любого из следующих условий:

  • данные, зависящие от языка и региональных параметров, изменились между основными или дополнительными версиями платформа .NET Framework или в результате обновления существующей версии платформа .NET Framework.
  • Данные, зависящие от языка и региональных параметров, отражают предпочтения пользователя, которые могут отличаться от компьютера к компьютеру или сеансу.
  • Данные, зависящие от языка и региональных параметров, представляют собой заменяющую культуру, переопределяющую параметры стандартного языка и региональных параметров или пользовательского языка и региональных параметров.

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

Дополнительные сведения см. в разделе "данные динамического языка и региональных параметров" статьи CultureInfo и в разделе "сохранение значений DateTime" DateTime статьи.

Синтаксический анализ и элементы стиля

Все Parse перегрузки пропускаются начальные, внутренние или конечные символы пробелов во входной строке (которая представлена s в следующей таблице). Дата и время могут быть заключены в скобки с парой начальных и конечных символов РЕШЕТКи ("#", U + 0023), а также могут заканчиваться одним или несколькими символами NULL (U + 0000).

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

DateTimeStyles, элемент Воздействие на преобразование
AdjustToUniversal При необходимости выполняет синтаксический анализ s и преобразует его в формат UTC следующим образом:

— Если s параметр включает смещение часового пояса или s не содержит сведений о часовом поясе, но styles включает AssumeLocal флаг, метод анализирует строку, вызывает, ToUniversalTime чтобы преобразовать возвращенное DateTime значение в формат UTC, и устанавливает Kind свойство в значение DateTimeKind.Utc .
-Если s указывает, что он представляет время в формате UTC или не s содержит сведений о часовом поясе styles , но включает AssumeUniversal флаг, метод анализирует строку, не выполняет преобразование часового пояса для возвращаемого DateTime значения и устанавливает Kind свойство в значение DateTimeKind.Utc .
— Во всех остальных случаях флаг не действует.
AllowInnerWhite Это значение игнорируется. Внутренние пробелы всегда разрешены в элементах даты и времени s .
AllowLeadingWhite Это значение игнорируется. Начальные пробелы всегда разрешены в элементах даты и времени s .
AllowTrailingWhite Это значение игнорируется. Конечные пробелы всегда разрешены в элементах даты и времени s .
AllowWhiteSpaces Указывает, что s может содержать начальные, внутренние и конечные пробелы. Это поведение по умолчанию. Его нельзя переопределить, указав более жесткое DateTimeStyles значение перечисления, такое как None .
AssumeLocal Указывает, что при s отсутствии сведений о часовом поясе подразумевается местное время. Если AdjustToUniversal флаг не указан, Kind свойство возвращаемого DateTime значения устанавливается в значение DateTimeKind.Local .
AssumeUniversal Указывает, что при s отсутствии сведений о часовом поясе предполагается время в формате UTC. Если AdjustToUniversal флаг не указан, метод преобразует возвращенное DateTime значение из времени в формате UTC в местное время и устанавливает Kind для его свойства значение DateTimeKind.Local .
None Несмотря на допустимость, это значение игнорируется.
RoundtripKind Для строк, содержащих сведения о часовом поясе, пытается предотвратить преобразование строки даты и времени в DateTime значение, представляющее местное время, свойство которого имеет значение Kind DateTimeKind.Local . Как правило, такая строка создается путем вызова DateTime.ToString(String) метода и с помощью описателя стандартного формата "o", "r" или "u".

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

DateTime.ParseПерегрузки возвращают DateTime значение, Kind свойство которого содержит сведения о часовом поясе. Это может означать, что время:

  • Время в формате UTC ( System.DateTimeKind.Utc ).
  • Время в местном часовом поясе ( System.DateTimeKind.Local ).
  • Время в неизвестном часовом поясе (xref: System. DateTimeKind. не указано? displayProperty = fullName>).

Как правило, Parse метод возвращает DateTime объект, Kind свойство которого имеет значение DateTimeKind.Unspecified . Однако Parse метод может также выполнить преобразование часового пояса и задать значение Kind свойства по-разному в зависимости от значений s styles параметров и:

If Преобразование часового пояса Kind, свойство
s содержит сведения о часовом поясе. Дата и время преобразуются во время в местном часовом поясе. DateTimeKind.Local
s содержит сведения о часовом поясе и styles включает AdjustToUniversal флаг. Дата и время преобразуются в время в формате UTC. DateTimeKind.Utc
s содержит обозначение часового пояса Z или GMT и styles включает RoundtripKind флаг. Дата и время считаются в формате UTC. DateTimeKind.Utc

В следующем примере строки даты, содержащие сведения о часовом поясе, преобразуются в время в местном часовом поясе:

using System;

public class Example
{
   public static void Main()
   {
      string[] dateStrings = {"2008-05-01T07:34:42-5:00",
                              "2008-05-01 7:34:42Z",
                              "Thu, 01 May 2008 07:34:42 GMT"};
      foreach (string dateString in dateStrings)
      {
         DateTime convertedDate = DateTime.Parse(dateString);
         Console.WriteLine($"Converted {dateString} to {convertedDate.Kind} time {convertedDate}");
      }
   }
}
// These calls to the DateTime.Parse method display the following output:
//  Converted 2008-05-01T07:34:42-5:00 to Local time 5/1/2008 5:34:42 AM
//  Converted 2008-05-01 7:34:42Z to Local time 5/1/2008 12:34:42 AM
//  Converted Thu, 01 May 2008 07:34:42 GMT to Local time 5/1/2008 12:34:42 AM
Module Example
   Public Sub Main()
      Dim dateStrings() As String = {"2008-05-01T07:34:42-5:00", 
                                     "2008-05-01 7:34:42Z", 
                                     "Thu, 01 May 2008 07:34:42 GMT"}
      
      For Each dateStr In dateStrings
         Dim convertedDate As Date = Date.Parse(dateStr)
         Console.WriteLine($"Converted {dateStr} to {convertedDate.Kind} time {convertedDate}")
      Next 
   End Sub
End Module
' These calls to the DateTime.Parse method display the following output:
'   Converted 2008-05-01T07:34:42-5:00 to Local time 5/1/2008 5:34:42 AM
'   Converted 2008-05-01 7:34:42Z to Local time 5/1/2008 12:34:42 AM
'   Converted Thu, 01 May 2008 07:34:42 GMT to Local time 5/1/2008 12:34:42 AM

Можно также сохранить значение свойства даты и времени Kind во время операции форматирования и синтаксического анализа с помощью DateTimeStyles.RoundtripKind флага. В следующем примере показано RoundtripKind влияние флага на операцию синтаксического анализа DateTime значений, которые преобразуются в строки с помощью описателя формата "o", "r" или "u".

   string[] formattedDates = { "2008-09-15T09:30:41.7752486-07:00",
                               "2008-09-15T09:30:41.7752486Z",
                               "2008-09-15T09:30:41.7752486",
                               "2008-09-15T09:30:41.7752486-04:00",
                               "Mon, 15 Sep 2008 09:30:41 GMT" };
   foreach (string formattedDate in formattedDates)
   {
      Console.WriteLine(formattedDate);
      DateTime roundtripDate = DateTime.Parse(formattedDate, null,
                                              DateTimeStyles.RoundtripKind);
      Console.WriteLine($"   With RoundtripKind flag: {roundtripDate} {roundtripDate.Kind} time.");

      DateTime noRoundtripDate = DateTime.Parse(formattedDate, null,
                                                DateTimeStyles.None);
      Console.WriteLine($"   Without RoundtripKind flag: {noRoundtripDate} {noRoundtripDate.Kind} time.");
   }
// The example displays the following output:
//       2008-09-15T09:30:41.7752486-07:00
//          With RoundtripKind flag: 9/15/2008 9:30:41 AM Local time.
//          Without RoundtripKind flag: 9/15/2008 9:30:41 AM Local time.
//       2008-09-15T09:30:41.7752486Z
//          With RoundtripKind flag: 9/15/2008 9:30:41 AM Utc time.
//          Without RoundtripKind flag: 9/15/2008 2:30:41 AM Local time.
//       2008-09-15T09:30:41.7752486
//          With RoundtripKind flag: 9/15/2008 9:30:41 AM Unspecified time.
//          Without RoundtripKind flag: 9/15/2008 9:30:41 AM Unspecified time.
//       2008-09-15T09:30:41.7752486-04:00
//          With RoundtripKind flag: 9/15/2008 6:30:41 AM Local time.
//          Without RoundtripKind flag: 9/15/2008 6:30:41 AM Local time.
//       Mon, 15 Sep 2008 09:30:41 GMT
//          With RoundtripKind flag: 9/15/2008 9:30:41 AM Utc time.
//          Without RoundtripKind flag: 9/15/2008 2:30:41 AM Local time.
Dim formattedDates() = { "2008-09-15T09:30:41.7752486-07:00", 
                           "2008-09-15T09:30:41.7752486Z",  
                           "2008-09-15T09:30:41.7752486",  
                           "2008-09-15T09:30:41.7752486-04:00", 
                           "Mon, 15 Sep 2008 09:30:41 GMT" }
For Each formattedDate In formattedDates
   Console.WriteLine(formattedDate)
   Dim roundtripDate = DateTime.Parse(formattedDate, Nothing,  
                                      DateTimeStyles.RoundtripKind)                        
   Console.WriteLine($"   With RoundtripKind flag: {roundtripDate} {roundtripDate.Kind} time.")                                          
   Dim noRoundtripDate = DateTime.Parse(formattedDate, Nothing,                                                                                                  DateTimeStyles.None)
   Console.WriteLine($"   Without RoundtripKind flag: {noRoundtripDate} {noRoundtripDate.Kind} time.")
Next         
' The example displays the following output:
'       2008-09-15T09:30:41.7752486-07:00
'          With RoundtripKind flag: 9/15/2008 9:30:41 AM Local time.
'          Without RoundtripKind flag: 9/15/2008 9:30:41 AM Local time.
'       2008-09-15T09:30:41.7752486Z
'          With RoundtripKind flag: 9/15/2008 9:30:41 AM Utc time.
'          Without RoundtripKind flag: 9/15/2008 2:30:41 AM Local time.
'       2008-09-15T09:30:41.7752486
'          With RoundtripKind flag: 9/15/2008 9:30:41 AM Unspecified time.
'          Without RoundtripKind flag: 9/15/2008 9:30:41 AM Unspecified time.
'       2008-09-15T09:30:41.7752486-04:00
'          With RoundtripKind flag: 9/15/2008 6:30:41 AM Local time.
'          Without RoundtripKind flag: 9/15/2008 6:30:41 AM Local time.
'       Mon, 15 Sep 2008 09:30:41 GMT
'          With RoundtripKind flag: 9/15/2008 9:30:41 AM Utc time.
'          Without RoundtripKind flag: 9/15/2008 2:30:41 AM Local time.

Parse(String)

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

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

Параметры

s
String

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

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

DateTime

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

Исключения

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

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

Примеры

В следующем примере выполняется синтаксический анализ строкового представления нескольких значений даты и времени:

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

  • Использование значения стиля по умолчанию, то есть AllowWhiteSpaces .

Он обрабатывает FormatException исключение, возникающее, когда метод пытается выполнить синтаксический анализ строкового представления даты и времени с помощью других соглашений о форматировании языка и региональных параметров. Также показано, как успешно выполнить синтаксический анализ значения даты и времени, которое не использует соглашения о форматировании языка и региональных параметров текущего потока.

using System;
using System.Globalization;

public class DateTimeParser
{
   public static void Main()
   {
      // Assume the current culture is en-US.
      // The date is February 16, 2008, 12 hours, 15 minutes and 12 seconds.

      // Use standard en-US date and time value
      DateTime dateValue;
      string dateString = "2/16/2008 12:15:12 PM";
      try {
         dateValue = DateTime.Parse(dateString);
         Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue);
      }
      catch (FormatException) {
         Console.WriteLine("Unable to convert '{0}'.", dateString);
      }

      // Reverse month and day to conform to the fr-FR culture.
      // The date is February 16, 2008, 12 hours, 15 minutes and 12 seconds.
      dateString = "16/02/2008 12:15:12";
      try {
         dateValue = DateTime.Parse(dateString);
         Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue);
      }
      catch (FormatException) {
         Console.WriteLine("Unable to convert '{0}'.", dateString);
      }

      // Call another overload of Parse to successfully convert string
      // formatted according to conventions of fr-FR culture.
      try {
         dateValue = DateTime.Parse(dateString, new CultureInfo("fr-FR", false));
         Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue);
      }
      catch (FormatException) {
         Console.WriteLine("Unable to convert '{0}'.", dateString);
      }

      // Parse string with date but no time component.
      dateString = "2/16/2008";
      try {
         dateValue = DateTime.Parse(dateString);
         Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue);
      }
      catch (FormatException) {
         Console.WriteLine("Unable to convert '{0}'.", dateString);
      }
   }
}
// The example displays the following output to the console:
//       '2/16/2008 12:15:12 PM' converted to 2/16/2008 12:15:12 PM.
//       Unable to convert '16/02/2008 12:15:12'.
//       '16/02/2008 12:15:12' converted to 2/16/2008 12:15:12 PM.
//       '2/16/2008' converted to 2/16/2008 12:00:00 AM.
Imports System.Globalization

Class DateTimeParser
   Public Shared Sub Main()
      ' Assume the current culture is en-US. 
      ' The date is February 16, 2008, 12 hours, 15 minutes and 12 seconds.

      ' Use standard en-US date and time value
      Dim dateValue As Date
      Dim dateString As String = "2/16/2008 12:15:12 PM"
      Try
         dateValue = Date.Parse(dateString)
         Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue)
      Catch e As FormatException
         Console.WriteLine("Unable to convert '{0}'.", dateString)
      End Try
            
      ' Reverse month and day to conform to the fr-FR culture.
      ' The date is February 16, 2008, 12 hours, 15 minutes and 12 seconds.
      dateString = "16/02/2008 12:15:12"
      Try
         dateValue = Date.Parse(dateString)
         Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue)
      Catch e As FormatException
         Console.WriteLine("Unable to convert '{0}'.", dateString)
      End Try

      ' Call another overload of Parse to successfully convert string
      ' formatted according to conventions of fr-FR culture.      
      Try
         dateValue = Date.Parse(dateString, New CultureInfo("fr-FR", False))
         Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue)
      Catch e As FormatException
         Console.WriteLine("Unable to convert '{0}'.", dateString)
      End Try
      
      ' Parse string with date but no time component.
      dateString = "2/16/2008"
      Try
         dateValue = Date.Parse(dateString)
         Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue)
      Catch e As FormatException
         Console.WriteLine("Unable to convert '{0}'.", dateString)
      End Try
   End Sub 
End Class 
' The example displays the following output to the console:
'       '2/16/2008 12:15:12 PM' converted to 2/16/2008 12:15:12 PM.
'       Unable to convert '16/02/2008 12:15:12'.
'       '16/02/2008 12:15:12' converted to 2/16/2008 12:15:12 PM.
'       '2/16/2008' converted to 2/16/2008 12:00:00 AM.

Комментарии

Если s содержит сведения о часовом поясе, этот метод возвращает DateTime значение, Kind свойство которого равно DateTimeKind.Local и преобразует дату и время в в s местное время. В противном случае он не выполняет преобразование часового пояса и возвращает DateTime значение, Kind свойство которого равно DateTimeKind.Unspecified .

Эта перегрузка пытается выполнить синтаксический анализ с s использованием соглашений о форматировании для текущего языка и региональных параметров. Текущий язык и региональные параметры указываются CurrentCulture свойством. Чтобы выполнить синтаксический анализ строки с помощью соглашений о форматировании для определенного языка и региональных параметров, вызовите метод Parse(String, IFormatProvider) или Parse(String, IFormatProvider, DateTimeStyles) перегрузки.

Эта перегрузка пытается выполнить синтаксический анализ с s помощью DateTimeStyles.AllowWhiteSpaces стиля.

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

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

Parse(String, IFormatProvider)

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

public:
 static DateTime Parse(System::String ^ s, IFormatProvider ^ provider);
public static DateTime Parse (string s, IFormatProvider provider);
public static DateTime Parse (string s, IFormatProvider? provider);
static member Parse : string * IFormatProvider -> DateTime
Public Shared Function Parse (s As String, provider As IFormatProvider) As DateTime

Параметры

s
String

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

provider
IFormatProvider

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

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

DateTime

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

Исключения

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

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

Примеры

В следующем примере выполняется синтаксический анализ массива строк даты с использованием соглашений о языках и региональных параметрах en-US, fr-FR и de-DE. В нем показано, что строковые представления одной даты могут интерпретироваться по-разному в разных культурах.

using System;
using System.Globalization;

public class ParseDate
{
   public static void Main()
   {
      // Define cultures to be used to parse dates.
      CultureInfo[] cultures = {CultureInfo.CreateSpecificCulture("en-US"),
                                CultureInfo.CreateSpecificCulture("fr-FR"),
                                CultureInfo.CreateSpecificCulture("de-DE")};
      // Define string representations of a date to be parsed.
      string[] dateStrings = {"01/10/2009 7:34 PM",
                              "10.01.2009 19:34",
                              "10-1-2009 19:34" };
      // Parse dates using each culture.
      foreach (CultureInfo culture in cultures)
      {
         DateTime dateValue;
         Console.WriteLine("Attempted conversions using {0} culture.",
                           culture.Name);
         foreach (string dateString in dateStrings)
         {
            try {
               dateValue = DateTime.Parse(dateString, culture);
               Console.WriteLine("   Converted '{0}' to {1}.",
                                 dateString, dateValue.ToString("f", culture));
            }
            catch (FormatException) {
               Console.WriteLine("   Unable to convert '{0}' for culture {1}.",
                                 dateString, culture.Name);
            }
         }
         Console.WriteLine();
      }
   }
}
// The example displays the following output to the console:
//       Attempted conversions using en-US culture.
//          Converted '01/10/2009 7:34 PM' to Saturday, January 10, 2009 7:34 PM.
//          Converted '10.01.2009 19:34' to Thursday, October 01, 2009 7:34 PM.
//          Converted '10-1-2009 19:34' to Thursday, October 01, 2009 7:34 PM.
//
//       Attempted conversions using fr-FR culture.
//          Converted '01/10/2009 7:34 PM' to jeudi 1 octobre 2009 19:34.
//          Converted '10.01.2009 19:34' to samedi 10 janvier 2009 19:34.
//          Converted '10-1-2009 19:34' to samedi 10 janvier 2009 19:34.
//
//       Attempted conversions using de-DE culture.
//          Converted '01/10/2009 7:34 PM' to Donnerstag, 1. Oktober 2009 19:34.
//          Converted '10.01.2009 19:34' to Samstag, 10. Januar 2009 19:34.
//          Converted '10-1-2009 19:34' to Samstag, 10. Januar 2009 19:34.
Imports System.Globalization

Module ParseDate
   Public Sub Main()
      ' Define cultures to be used to parse dates.
      Dim cultures() As CultureInfo = {CultureInfo.CreateSpecificCulture("en-US"), _
                                       CultureInfo.CreateSpecificCulture("fr-FR"), _
                                       CultureInfo.CreateSpecificCulture("de-DE")}
      ' Define string representations of a date to be parsed.
      Dim dateStrings() As String = {"01/10/2009 7:34 PM", _
                                     "10.01.2009 19:34", _
                                     "10-1-2009 19:34" }
      ' Parse dates using each culture.
      For Each culture In cultures
         Dim dateValue As Date
         Console.WriteLine("Attempted conversions using {0} culture.", culture.Name)
         For Each dateString As String In dateStrings
            Try
               dateValue = Date.Parse(dateString, culture)
               Console.WriteLine("   Converted '{0}' to {1}.", _
                                 dateString, dateValue.ToString("f", culture))
            Catch e As FormatException
               Console.WriteLine("   Unable to convert '{0}' for culture {1}.", _
                                 dateString, culture.Name)
            End Try                                                
         Next
         Console.WriteLine()
      Next                                                                                     
   End Sub
End Module
' The example displays the following output to the console:
'       Attempted conversions using en-US culture.
'          Converted '01/10/2009 7:34 PM' to Saturday, January 10, 2009 7:34 PM.
'          Converted '10.01.2009 19:34' to Thursday, October 01, 2009 7:34 PM.
'          Converted '10-1-2009 19:34' to Thursday, October 01, 2009 7:34 PM.
'       
'       Attempted conversions using fr-FR culture.
'          Converted '01/10/2009 7:34 PM' to jeudi 1 octobre 2009 19:34.
'          Converted '10.01.2009 19:34' to samedi 10 janvier 2009 19:34.
'          Converted '10-1-2009 19:34' to samedi 10 janvier 2009 19:34.
'       
'       Attempted conversions using de-DE culture.
'          Converted '01/10/2009 7:34 PM' to Donnerstag, 1. Oktober 2009 19:34.
'          Converted '10.01.2009 19:34' to Samstag, 10. Januar 2009 19:34.
'          Converted '10-1-2009 19:34' to Samstag, 10. Januar 2009 19:34.

Комментарии

Если s содержит сведения о часовом поясе, этот метод возвращает DateTime значение, Kind свойство которого равно DateTimeKind.Local и преобразует дату и время в в s местное время. В противном случае он не выполняет преобразование часового пояса и возвращает DateTime значение, Kind свойство которого равно DateTimeKind.Unspecified .

Эта перегрузка пытается выполнить синтаксический анализ с s помощью DateTimeStyles.AllowWhiteSpaces стиля.

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

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

Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)

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

public static DateTime Parse (ReadOnlySpan<char> s, IFormatProvider? provider = default, System.Globalization.DateTimeStyles styles = System.Globalization.DateTimeStyles.None);
public static DateTime Parse (ReadOnlySpan<char> s, IFormatProvider provider = default, System.Globalization.DateTimeStyles styles = System.Globalization.DateTimeStyles.None);
static member Parse : ReadOnlySpan<char> * IFormatProvider * System.Globalization.DateTimeStyles -> DateTime
Public Shared Function Parse (s As ReadOnlySpan(Of Char), Optional provider As IFormatProvider = Nothing, Optional styles As DateTimeStyles = System.Globalization.DateTimeStyles.None) As DateTime

Параметры

s
ReadOnlySpan<Char>

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

provider
IFormatProvider

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

styles
DateTimeStyles

Побитовая комбинация значений перечисления, показывающая элементы стиля, которые могут присутствовать в параметре s, чтобы операция анализа прошла успешно. Данная комбинация определяет способ интерпретации анализируемых данных с учетом текущего часового пояса или текущей даты. Обычно указывается значение None.

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

DateTime

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

Исключения

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

Параметр styles содержит недопустимое сочетание значений DateTimeStyles. Например, и AssumeLocal, и AssumeUniversal.

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

Parse(String, IFormatProvider, DateTimeStyles)

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

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

Параметры

s
String

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

provider
IFormatProvider

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

styles
DateTimeStyles

Побитовая комбинация значений перечисления, показывающая элементы стиля, которые могут присутствовать в параметре s, чтобы операция анализа прошла успешно. Данная комбинация определяет способ интерпретации анализируемых данных с учетом текущего часового пояса или текущей даты. Обычно указывается значение None.

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

DateTime

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

Исключения

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

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

Параметр styles содержит недопустимое сочетание значений DateTimeStyles. Например, значения AssumeLocal и AssumeUniversal.

Примеры

В следующем примере демонстрируется Parse(String, IFormatProvider, DateTimeStyles) метод и отображается значение Kind Свойства результирующих DateTime значений.

using System;
using System.Globalization;

public class ParseDateExample
{
   public static void Main()
   {
      string dateString;
      CultureInfo culture ;
      DateTimeStyles styles;
      DateTime result;

      // Parse a date and time with no styles.
      dateString = "03/01/2009 10:00 AM";
      culture = CultureInfo.CreateSpecificCulture("en-US");
      styles = DateTimeStyles.None;
      try {
         result = DateTime.Parse(dateString, culture, styles);
         Console.WriteLine("{0} converted to {1} {2}.",
                           dateString, result, result.Kind.ToString());
      }
      catch (FormatException) {
         Console.WriteLine("Unable to convert {0} to a date and time.",
                           dateString);
      }

      // Parse the same date and time with the AssumeLocal style.
      styles = DateTimeStyles.AssumeLocal;
      try {
         result = DateTime.Parse(dateString, culture, styles);
         Console.WriteLine("{0} converted to {1} {2}.",
                           dateString, result, result.Kind.ToString());
      }
      catch (FormatException) {
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString);
      }

      // Parse a date and time that is assumed to be local.
      // This time is five hours behind UTC. The local system's time zone is
      // eight hours behind UTC.
      dateString = "2009/03/01T10:00:00-5:00";
      styles = DateTimeStyles.AssumeLocal;
      try {
         result = DateTime.Parse(dateString, culture, styles);
         Console.WriteLine("{0} converted to {1} {2}.",
                           dateString, result, result.Kind.ToString());
      }
      catch (FormatException) {
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString);
      }

      // Attempt to convert a string in improper ISO 8601 format.
      dateString = "03/01/2009T10:00:00-5:00";
      try {
         result = DateTime.Parse(dateString, culture, styles);
         Console.WriteLine("{0} converted to {1} {2}.",
                           dateString, result, result.Kind.ToString());
      }
      catch (FormatException) {
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString);
      }

      // Assume a date and time string formatted for the fr-FR culture is the local
      // time and convert it to UTC.
      dateString = "2008-03-01 10:00";
      culture = CultureInfo.CreateSpecificCulture("fr-FR");
      styles = DateTimeStyles.AdjustToUniversal | DateTimeStyles.AssumeLocal;
      try {
         result = DateTime.Parse(dateString, culture, styles);
         Console.WriteLine("{0} converted to {1} {2}.",
                           dateString, result, result.Kind.ToString());
      }
      catch (FormatException) {
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString);
      }
   }
}
// The example displays the following output to the console:
//       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Unspecified.
//       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Local.
//       2009/03/01T10:00:00-5:00 converted to 3/1/2009 7:00:00 AM Local.
//       Unable to convert 03/01/2009T10:00:00-5:00 to a date and time.
//       2008-03-01 10:00 converted to 3/1/2008 6:00:00 PM Utc.
Imports System.Globalization

Module ParseDateExample
   Public Sub Main()
      Dim dateString As String  
      Dim culture As CultureInfo
      Dim styles As DateTimeStyles 
      Dim result As DateTime
      
      ' Parse a date and time with no styles.
      dateString = "03/01/2009 10:00 AM"
      culture = CultureInfo.CreateSpecificCulture("en-US")
      styles = DateTimeStyles.None
      Try
         result = DateTime.Parse(dateString, culture, styles)
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, result, result.Kind.ToString())
      Catch e As FormatException
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End Try      
      
      ' Parse the same date and time with the AssumeLocal style.
      styles = DateTimeStyles.AssumeLocal
      Try
         result = DateTime.Parse(dateString, culture, styles)
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, result, result.Kind.ToString())
      Catch e As FormatException
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End Try      
      
      ' Parse a date and time that is assumed to be local.
      ' This time is five hours behind UTC. The local system's time zone is 
      ' eight hours behind UTC.
      dateString = "2009/03/01T10:00:00-5:00"
      styles = DateTimeStyles.AssumeLocal
      Try
         result = DateTime.Parse(dateString, culture, styles)
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, result, result.Kind.ToString())
      Catch e As FormatException
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End Try      
      
      ' Attempt to convert a string in improper ISO 8601 format.
      dateString = "03/01/2009T10:00:00-5:00"
      Try
         result = DateTime.Parse(dateString, culture, styles)
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, result, result.Kind.ToString())
      Catch e As FormatException
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End Try      

      ' Assume a date and time string formatted for the fr-FR culture is the local 
      ' time and convert it to UTC.
      dateString = "2008-03-01 10:00"
      culture = CultureInfo.CreateSpecificCulture("fr-FR")
      styles = DateTimeStyles.AdjustToUniversal Or DateTimeStyles.AssumeLocal
      Try
         result = DateTime.Parse(dateString, culture, styles)
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, result, result.Kind.ToString())
      Catch e As FormatException
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End Try      
   End Sub
End Module
'
' The example displays the following output to the console:
'       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Unspecified.
'       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Local.
'       2009/03/01T10:00:00-5:00 converted to 3/1/2009 7:00:00 AM Local.
'       Unable to convert 03/01/2009T10:00:00-5:00 to a date and time.
'       2008-03-01 10:00 converted to 3/1/2008 6:00:00 PM Utc.

Комментарии

Эта перегрузка метода преобразует дату и время в s и устанавливает Kind свойство возвращаемого DateTime значения следующим образом:

If Преобразование часового пояса Kind, свойство
s не содержит сведений о часовом поясе. Отсутствует. DateTimeKind.Unspecified
s содержит сведения о часовом поясе. К времени в местном часовом поясе DateTimeKind.Local
s содержит сведения о часовом поясе и styles включает DateTimeStyles.AdjustToUniversal флаг. В время в формате UTC DateTimeKind.Utc
s содержит обозначение часового пояса Z или GMT и styles включает DateTimeStyles.RoundtripKind . Отсутствует. DateTimeKind.Utc

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

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