DateTimeOffset.ToOffset(TimeSpan) DateTimeOffset.ToOffset(TimeSpan) DateTimeOffset.ToOffset(TimeSpan) DateTimeOffset.ToOffset(TimeSpan) Method

Definition

Konvertiert den Wert des aktuellen DateTimeOffset-Objekts in die durch einen Offsetwert angegebene Datums- und Uhrzeitangabe.Converts the value of the current DateTimeOffset object to the date and time specified by an offset value.

public:
 DateTimeOffset ToOffset(TimeSpan offset);
public DateTimeOffset ToOffset (TimeSpan offset);
member this.ToOffset : TimeSpan -> DateTimeOffset
Public Function ToOffset (offset As TimeSpan) As DateTimeOffset

Parameter

offset
TimeSpan TimeSpan TimeSpan TimeSpan

Der Offset, in den der DateTimeOffset-Wert konvertiert werden soll.The offset to convert the DateTimeOffset value to.

Gibt zurück

Ein Objekt, das gleich dem ursprünglichen DateTimeOffset-Objekt ist (d. h. die zugehörigen ToUniversalTime()-Methoden geben identische Zeitpunkte zurück), dessen Offset-Eigenschaft jedoch auf offset festgelegt ist.An object that is equal to the original DateTimeOffset object (that is, their ToUniversalTime() methods return identical points in time) but whose Offset property is set to offset.

Ausnahmen

Der DateTimeOffset-Wert des sich ergebenden DateTime-Objekts liegt vor MinValue.The resulting DateTimeOffset object has a DateTime value earlier than MinValue.

- oder --or- Der DateTimeOffset-Wert des sich ergebenden DateTime-Objekts liegt nach MaxValue.The resulting DateTimeOffset object has a DateTime value later than MaxValue.

offset ist kleiner als -14 Stunden.offset is less than -14 hours.

- oder --or- offset ist größer als 14 Stunden.offset is greater than 14 hours.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie die ToOffset -Methode verwendet wird DateTimeOffset , um ein DateTimeOffset -Objekt in ein-Objekt mit einem anderen Offset zu konvertieren.The following example illustrates how to use the ToOffset method to convert a DateTimeOffset object to a DateTimeOffset object with a different offset.

using System;

public class DateTimeOffsetConversion
{
   private static DateTimeOffset sourceTime; 
   
   public static void Main()
   {
      DateTimeOffset targetTime;
      sourceTime = new DateTimeOffset(2007, 9, 1, 9, 30, 0, 
                                      new TimeSpan(-5, 0, 0));
                                            
      // Convert to same time (return sourceTime unchanged)
      targetTime = sourceTime.ToOffset(new TimeSpan(-5, 0, 0));
      ShowDateAndTimeInfo(targetTime);
      
      // Convert to UTC (0 offset)
      targetTime = sourceTime.ToOffset(TimeSpan.Zero);
      ShowDateAndTimeInfo(targetTime);
      
      // Convert to 8 hours behind UTC
      targetTime = sourceTime.ToOffset(new TimeSpan(-8, 0, 0));
      ShowDateAndTimeInfo(targetTime);
      
      // Convert to 3 hours ahead of UTC
      targetTime = sourceTime.ToOffset(new TimeSpan(3, 0, 0));
      ShowDateAndTimeInfo(targetTime);
   }

   private static void ShowDateAndTimeInfo(DateTimeOffset newTime)
   {
      Console.WriteLine("{0} converts to {1}", sourceTime, newTime);
      Console.WriteLine("{0} and {1} are equal: {2}", 
                        sourceTime, newTime, sourceTime.Equals(newTime));
      Console.WriteLine("{0} and {1} are identical: {2}", 
                        sourceTime, newTime, 
                        sourceTime.EqualsExact(newTime)); 
      Console.WriteLine();
   }
}
//
// The example displays the following output:
//    9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 9:30:00 AM -05:00
//    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 9:30:00 AM -05:00 are equal: True
//    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 9:30:00 AM -05:00 are identical: True
//    
//    9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 2:30:00 PM +00:00
//    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 2:30:00 PM +00:00 are equal: True
//    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 2:30:00 PM +00:00 are identical: False
//    
//    9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 6:30:00 AM -08:00
//    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 6:30:00 AM -08:00 are equal: True
//    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 6:30:00 AM -08:00 are identical: False
//    
//    9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 5:30:00 PM +03:00
//    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 5:30:00 PM +03:00 are equal: True
//    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 5:30:00 PM +03:00 are identical: False
Module DateTimeOffsetConversion
   Private sourceTime As New DateTimeOffset(#9/1/2007 9:30AM#, _
                                            New TimeSpan(-5, 0, 0))
   
   Public Sub Main()
      Dim targetTime As DateTimeOffset
      
      ' Convert to same time (return sourceTime unchanged)
      targetTime = sourceTime.ToOffset(New TimeSpan(-5, 0, 0))
      ShowDateAndTimeInfo(targetTime)
      
      ' Convert to UTC (0 offset)
      targetTime = sourceTime.ToOffset(TimeSpan.Zero)
      ShowDateAndTimeInfo(targetTime)
      
      ' Convert to 8 hours behind UTC
      targetTime = sourceTime.ToOffset(New TimeSpan(-8, 0, 0))
      ShowDateAndTimeInfo(targetTime)
      
      ' Convert to 3 hours ahead of UTC
      targetTime = sourceTime.ToOffset(New TimeSpan(3, 0, 0))
      ShowDateAndTimeInfo(targetTime)
   End Sub
   
   Private Sub ShowDateAndTimeInfo(newTime As DateTimeOffset)
      Console.WriteLine("{0} converts to {1}", sourceTime, newTime)
      Console.WriteLine("{0} and {1} are equal: {2}", _
                        sourceTime, newTime, sourceTime.Equals(newTime))
      Console.WriteLine("{0} and {1} are identical: {2}", _
                        sourceTime, newTime, _
                        sourceTime.EqualsExact(newTime)) 
      Console.WriteLine()
   End Sub
End Module
'
' The example displays the following output:
'    9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 9:30:00 AM -05:00
'    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 9:30:00 AM -05:00 are equal: True
'    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 9:30:00 AM -05:00 are identical: True
'    
'    9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 2:30:00 PM +00:00
'    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 2:30:00 PM +00:00 are equal: True
'    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 2:30:00 PM +00:00 are identical: False
'    
'    9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 6:30:00 AM -08:00
'    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 6:30:00 AM -08:00 are equal: True
'    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 6:30:00 AM -08:00 are identical: False
'    
'    9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 5:30:00 PM +03:00
'    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 5:30:00 PM +03:00 are equal: True
'    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 5:30:00 PM +03:00 are identical: False

Hinweise

Die ToOffset -Methode ist eine Alternative zum Aufrufen TimeZoneInfo.ConvertTime(DateTimeOffset, TimeZoneInfo) der-Methode.The ToOffset method is an alternative to calling the TimeZoneInfo.ConvertTime(DateTimeOffset, TimeZoneInfo) method. Dies kann nützlich sein, um einfache Konvertierungen von einer Zeitzone in eine andere durchzuführen, wenn die Offsets der Zeitzonen von koordinierter Weltzeit (UTC) bekannt sind.It can be useful for performing simple conversions from one time zone to another when the time zones' offsets from Coordinated Universal Time (UTC) are known. Da weder das ursprüngliche DateTimeOffset -Objekt noch das neue DateTimeOffset Objekt, das vom-Methodenaufruf zurückgegeben wird, eindeutig mit einer bestimmten Zeitzone verknüpft ist, wendet die-Methode jedoch keine Zeit Zonen Anpassungsregeln in der Konvertierung an.However, because neither the original DateTimeOffset object nor the new DateTimeOffset object returned by the method call are unambiguously related to a particular time zone, the method does not apply any time zone adjustment rules in the conversion.

Gilt für: