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


DateTimeOffset.ToLocalTime Метод

Определение

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

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

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

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

Примеры

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

// 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 и временем MaxValueMinValue или, а для смещения задано смещение локального часового пояса.

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

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