DateTimeOffset.ToLocalTime Метод

Определение

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

public:
 DateTimeOffset ToLocalTime();
public DateTimeOffset ToLocalTime();
member this.ToLocalTime : unit -> DateTimeOffset
Public Function ToLocalTime () As DateTimeOffset

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

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

Примеры

В следующем примере метод используется ToLocalTime для преобразования DateTimeOffset значения в местное время в часовом поясе Pacific Standard. Он также демонстрирует поддержку метода для правил корректировки локального часового пояса.

// Local time changes on 3/11/2007 at 2:00 AM
DateTimeOffset originalTime, localTime;

originalTime = new DateTimeOffset(2007, 3, 11, 3, 0, 0,
                                  new TimeSpan(-6, 0, 0));
localTime = originalTime.ToLocalTime();
Console.WriteLine("Converted {0} to {1}.", originalTime.ToString(),
                                           localTime.ToString());

originalTime = new DateTimeOffset(2007, 3, 11, 4, 0, 0,
                                  new TimeSpan(-6, 0, 0));
localTime = originalTime.ToLocalTime();
Console.WriteLine("Converted {0} to {1}.", originalTime.ToString(),
                                           localTime.ToString());

// Define a summer UTC time
originalTime = new DateTimeOffset(2007, 6, 15, 8, 0, 0,
                                  TimeSpan.Zero);
localTime = originalTime.ToLocalTime();
Console.WriteLine("Converted {0} to {1}.", originalTime.ToString(),
                                           localTime.ToString());

// Define a winter time
originalTime = new DateTimeOffset(2007, 11, 30, 14, 0, 0,
                                  new TimeSpan(3, 0, 0));
localTime = originalTime.ToLocalTime();
Console.WriteLine("Converted {0} to {1}.", originalTime.ToString(),
                                           localTime.ToString());
// The example produces the following output:
//    Converted 3/11/2007 3:00:00 AM -06:00 to 3/11/2007 1:00:00 AM -08:00.
//    Converted 3/11/2007 4:00:00 AM -06:00 to 3/11/2007 3:00:00 AM -07:00.
//    Converted 6/15/2007 8:00:00 AM +00:00 to 6/15/2007 1:00:00 AM -07:00.
//    Converted 11/30/2007 2:00:00 PM +03:00 to 11/30/2007 3:00:00 AM -08:00.
// Local time changes on 3/11/2007 at 2:00 AM
let originalTime = DateTimeOffset(2007, 3, 11, 3, 0, 0, TimeSpan(-6, 0, 0))
let localTime = originalTime.ToLocalTime()
printfn $"Converted {originalTime} to {localTime}."

let originalTime = DateTimeOffset(2007, 3, 11, 4, 0, 0, TimeSpan(-6, 0, 0))
let localTime = originalTime.ToLocalTime()
printfn $"Converted {originalTime} to {localTime}."

// Define a summer UTC time
let originalTime = DateTimeOffset(2007, 6, 15, 8, 0, 0, TimeSpan.Zero)
let localTime = originalTime.ToLocalTime()
printfn $"Converted {originalTime} to {localTime}."

// Define a winter time
let originalTime = DateTimeOffset(2007, 11, 30, 14, 0, 0, TimeSpan(3, 0, 0))
let localTime = originalTime.ToLocalTime()
printfn $"Converted {originalTime} to {localTime}."

// The example produces the following output:
//    Converted 3/11/2007 3:00:00 AM -06:00 to 3/11/2007 1:00:00 AM -08:00.
//    Converted 3/11/2007 4:00:00 AM -06:00 to 3/11/2007 3:00:00 AM -07:00.
//    Converted 6/15/2007 8:00:00 AM +00:00 to 6/15/2007 1:00:00 AM -07:00.
//    Converted 11/30/2007 2:00:00 PM +03:00 to 11/30/2007 3:00:00 AM -08:00.
' Local time changes on 3/11/2007 at 2:00 AM
Dim originalTime, localTime As DateTimeOffset

originalTime = New DateTimeOffset(#03/11/2007 3:00AM#, _
                                  New TimeSpan(-6, 0, 0))
localTime = originalTime.ToLocalTime()
Console.WriteLine("Converted {0} to {1}.", originalTime.ToString(), _
                                           localTime.ToString())       

originalTime = New DateTimeOffset(#03/11/2007 4:00AM#, _
                                  New TimeSpan(-6, 0, 0))
localTime = originalTime.ToLocalTime()
Console.WriteLine("Converted {0} to {1}.", originalTime.ToString(), _
                                           localTime.ToString())       

' Define a summer UTC time
originalTime = New DateTimeOffset(#6/15/2007 8:00AM#, _
                                  TimeSpan.Zero)
localTime = originalTime.ToLocalTime()
Console.WriteLine("Converted {0} to {1}.", originalTime.ToString(), _
                                           localTime.ToString())       

' Define a winter time
originalTime = New DateTimeOffset(#11/30/2007 2:00PM#, _
                                  New TimeSpan(3, 0, 0))
localTime = originalTime.ToLocalTime()
Console.WriteLine("Converted {0} to {1}.", originalTime.ToString(), _
                                           localTime.ToString())   
' The example produces the following output:
'    Converted 3/11/2007 3:00:00 AM -06:00 to 3/11/2007 1:00:00 AM -08:00.
'    Converted 3/11/2007 4:00:00 AM -06:00 to 3/11/2007 3:00:00 AM -07:00.
'    Converted 6/15/2007 8:00:00 AM +00:00 to 6/15/2007 1:00:00 AM -07:00.
'    Converted 11/30/2007 2:00:00 PM +03:00 to 11/30/2007 3:00:00 AM -08:00.

Комментарии

При преобразовании в локальное время метод сначала преобразует дату и время текущего DateTimeOffset объекта в координированное универсальное время (UTC), вычитая смещение из времени. Затем он преобразует дату и время UTC в местное время, добавив смещение локального часового пояса. При этом учитывается все правила корректировки для местного часового пояса.

Как значение текущего DateTimeOffset объекта, так и значение DateTimeOffset объекта, возвращаемого вызовом метода, представляют одну точку во времени. То есть, если оба передаются DateTimeOffset.Equals(DateTimeOffset, DateTimeOffset) в метод, метод возвращается true.

Если преобразование приводит к тому, что время выходит из диапазона DateTimeOffset типа, ToLocalTime метод возвращает DateTimeOffset объект с заданной датой и временем MaxValue или MinValue смещением, заданным для смещения локального часового пояса.

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

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