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

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


DateTimeOffset.LocalDateTime Свойство

Определение

Получает значение DateTime, представляющее местную дату и время в текущем объекте DateTimeOffset.

public DateTime LocalDateTime { get; }

Значение свойства

DateTime

Локальные дата и время текущего объекта DateTimeOffset.

Примеры

В следующем примере показано несколько преобразований значений DateTimeOffset в местное время в тихоокеанском часовом поясе США standard. Обратите внимание, что последние три раза неоднозначны; свойство сопоставляет все из них с одной датой и временем в тихоокеанском стандартном часовом поясе.

 DateTimeOffset dto;

 // Current time
 dto = DateTimeOffset.Now;
 Console.WriteLine(dto.LocalDateTime);
 // UTC time
 dto = DateTimeOffset.UtcNow;
 Console.WriteLine(dto.LocalDateTime);

// Transition to DST in local time zone occurs on 3/11/2007 at 2:00 AM
 dto = new DateTimeOffset(2007, 3, 11, 3, 30, 0, new TimeSpan(-7, 0, 0));
 Console.WriteLine(dto.LocalDateTime);
 dto = new DateTimeOffset(2007, 3, 11, 2, 30, 0, new TimeSpan(-7, 0, 0));
 Console.WriteLine(dto.LocalDateTime);
 // Invalid time in local time zone
 dto = new DateTimeOffset(2007, 3, 11, 2, 30, 0, new TimeSpan(-8, 0, 0));
 Console.WriteLine(TimeZoneInfo.Local.IsInvalidTime(dto.DateTime));
 Console.WriteLine(dto.LocalDateTime);

 // Transition from DST in local time zone occurs on 11/4/07 at 2:00 AM
 // This is an ambiguous time
 dto = new DateTimeOffset(2007, 11, 4, 1, 30, 0, new TimeSpan(-7, 0, 0));
 Console.WriteLine(TimeZoneInfo.Local.IsAmbiguousTime(dto));
 Console.WriteLine(dto.LocalDateTime);
 dto = new DateTimeOffset(2007, 11, 4, 2, 30, 0, new TimeSpan(-7, 0, 0));
 Console.WriteLine(TimeZoneInfo.Local.IsAmbiguousTime(dto));
 Console.WriteLine(dto.LocalDateTime);
 // This is also an ambiguous time
 dto = new DateTimeOffset(2007, 11, 4, 1, 30, 0, new TimeSpan(-8, 0, 0));
 Console.WriteLine(TimeZoneInfo.Local.IsAmbiguousTime(dto));
 Console.WriteLine(dto.LocalDateTime);
 // If run on 3/8/2007 at 4:56 PM, the code produces the following
 // output:
 //    3/8/2007 4:56:03 PM
 //    3/8/2007 4:56:03 PM
 //    3/11/2007 3:30:00 AM
 //    3/11/2007 1:30:00 AM
 //    True
 //    3/11/2007 3:30:00 AM
 //    True
 //    11/4/2007 1:30:00 AM
 //    11/4/2007 1:30:00 AM
 //    True
 //    11/4/2007 1:30:00 AM

Комментарии

При необходимости LocalDateTime свойство преобразует дату и время текущего DateTimeOffset объекта в дату и время локальной системы. Преобразование представляет собой двухфакторную операцию:

  1. Свойство преобразует время текущего DateTimeOffset объекта в utc.

  2. Затем свойство преобразует UTC в местное время.

Недопустимое время и неоднозначное время сопоставляются со стандартным временем локальной зоны. (Однако преобразование может создать аномалию: если DateTimeOffset значение, производное от локального компьютера, отражает неоднозначную дату и время, это значение можно преобразовать в utc, а затем вернуться к местному времени, которое отличается от исходного времени.) Свойство применяет все правила корректировки в местном часовом поясе при выполнении этого преобразования.

Это свойство возвращает как дату, так и компонент DateTimeOffset времени объекта, что делает его полезным для DateTimeOffset DateTime преобразования. Помимо выполнения любого необходимого преобразования времени, это свойство отличается от DateTime свойства, задавая значение Kind свойства возвращаемого DateTime объекта DateTimeKind.Local.

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

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