Auf Englisch lesen

Freigeben über


DateTimeOffset.ToOffset(TimeSpan) Methode

Definition

Konvertiert den Wert des aktuellen DateTimeOffset-Objekts in die durch einen Offsetwert angegebene Datums- und Uhrzeitangabe.

C#
public DateTimeOffset ToOffset(TimeSpan offset);

Parameter

offset
TimeSpan

Der Offset, in den der DateTimeOffset-Wert konvertiert werden soll.

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.

Ausnahmen

Das resultierende DateTimeOffset Objekt hat einen DateTime Wert vor DateTimeOffset.MinValue.

- oder -

Das resultierende DateTimeOffset Objekt weist einen DateTime Wert höher als DateTimeOffset.MaxValue auf.

offset ist kleiner als -14 Stunden.

- oder -

offset ist größer als 14 Stunden.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie Sie mithilfe der ToOffset -Methode ein DateTimeOffset Objekt in ein Objekt mit einem DateTimeOffset anderen Offset konvertieren.

C#
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

Hinweise

Die ToOffset -Methode ist eine Alternative zum Aufrufen der TimeZoneInfo.ConvertTime(DateTimeOffset, TimeZoneInfo) -Methode. Dies kann für einfache Konvertierungen von einer Zeitzone in eine andere nützlich sein, wenn die Offsets der Zeitzonen aus koordinierter Weltzeit (UTC) bekannt sind. Da jedoch weder das ursprüngliche DateTimeOffset Objekt noch das vom Methodenaufruf zurückgegebene neue DateTimeOffset Objekt eindeutig mit einer bestimmten Zeitzone verknüpft sind, wendet die Methode bei der Konvertierung keine Zeitzonenanpassungsregeln an.

Gilt für:

Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0