DateTimeOffset.ToLocalTime 方法

定义

将当前的 DateTimeOffset 对象转换为表示本地时间的 DateTimeOffset 对象。Converts the current DateTimeOffset object to a DateTimeOffset object that represents the local time.

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

返回

一个对象,表示当前的 DateTimeOffset 对象的日期和时间,已转换为本地时间。An object that represents the date and time of the current DateTimeOffset object converted to local time.

示例

下面的示例使用 ToLocalTime 方法将 DateTimeOffset 值转换为太平洋标准时区中的本地时间。The following example uses the ToLocalTime method to convert a DateTimeOffset value to local time in the Pacific Standard Time zone. 它还阐释了方法对本地时区的调整规则的支持。It also illustrates the method's support for the local time zone's adjustment rules.

// 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
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)。In performing the conversion to local time, the method first converts the current DateTimeOffset object's date and time to Coordinated Universal Time (UTC) by subtracting the offset from the time. 然后,它通过添加本地时区偏移量将 UTC 日期和时间转换为本地时间。It then converts the UTC date and time to local time by adding the local time zone offset. 在执行此操作时,它会考虑本地时区的任何调整规则。In doing this, it takes account of any adjustment rules for the local time zone.

当前 DateTimeOffset 对象的值和该方法调用返回的 DateTimeOffset 对象的值都表示相同的时间点。Both the value of the current DateTimeOffset object and the value of the DateTimeOffset object returned by the method call represent the same point in time. 也就是说,如果两个传递到 DateTimeOffset.Equals(DateTimeOffset, DateTimeOffset) 方法,则方法将返回 trueThat is, if both are passed to the DateTimeOffset.Equals(DateTimeOffset, DateTimeOffset) method, the method will return true.

如果转换导致时间超出 DateTimeOffset 类型的范围,则 ToLocalTime 方法返回 DateTimeOffset 对象,该对象的日期和时间设置为 MaxValueMinValue,偏移量设置为本地时区偏移量。If the conversion causes a time that is out of range of the DateTimeOffset type, the ToLocalTime method returns a DateTimeOffset object that has the date and time set to either MaxValue or MinValue and the offset set to the local time zone offset.

适用于

另请参阅