Freigeben über


TimeZone.ToLocalTime(DateTime) Methode

Definition

Gibt die Ortszeit zurück, die einem angegebenen Datums- und Zeitwert entspricht.

public:
 virtual DateTime ToLocalTime(DateTime time);
public virtual DateTime ToLocalTime (DateTime time);
abstract member ToLocalTime : DateTime -> DateTime
override this.ToLocalTime : DateTime -> DateTime
Public Overridable Function ToLocalTime (time As DateTime) As DateTime

Parameter

time
DateTime

Eine UTC-Zeit (Coordinated Universal Time).

Gibt zurück

DateTime

Ein DateTime-Objekt, dessen Wert die time entsprechende Ortszeit ist.

Hinweise

Die folgende Tabelle zeigt die Beziehung zwischen dem time -Parameter und dem DateTime von dieser Methode zurückgegebenen Wert.

time-Parameter Verhalten Rückgabewert
Eine koordinierte Weltzeit (UTC) Zeit ( DateTimeKind.Utc ). Konvertiert die Zeit von UTC in die Ortszeit. Ein DateTime-Objekt, dessen Wert die time entsprechende Ortszeit ist.
Eine lokale Zeit ( DateTimeKind.Local ). Keine Konvertierung erforderlich. Der gleiche DateTime Wert, der durch den -Parameter time dargestellt wird.
Eine nicht angegebene Zeit ( DateTimeKind.Unspecified ). Es wird davon ausgegangen, dass die Zeit UTC ist, und konvertiert sie von UTC in die Ortszeit. Ein DateTime-Objekt, dessen Wert die time entsprechende Ortszeit ist.

Wenn die lokale Zeitzone die Sommerzeit beobachtet, wendet beim Durchführen der Konvertierung die ToLocalTime aktuelle Anpassungsregel time auf an.

Hinweis

Die ToLocalTime -Methode erkennt nur die aktuelle Sommerzeitanpassungsregel für die lokale Zeitzone. Daher wird garantiert, dass die Ortszeit, die einer bestimmten UTC-Zeit entspricht, nur während des Zeitraums, in dem die letzte Anpassungsregel wirksam ist, genau zurückgegeben wird. Er kann ungenaue Ergebnisse zurückgeben, time wenn ein historischer Datums- und Uhrzeitwert ist, der einer vorherigen Anpassungsregel unterliegt.

Die ToLocalTime -Methode entspricht der TimeZoneInfo.ConvertTimeFromUtc -Methode, deren destinationTimeZone Parameter auf festgelegt TimeZoneInfo.Local ist. Verwenden Sie nach Möglichkeit die TimeZoneInfo.ConvertTimeFromUtc -Methode.

Hinweise für Vererber

Obwohl dies nicht erforderlich ist, sollten abgeleitete Klassen, die unter der .NET Framework Version 2.0 ausgeführt werden, die Standardimplementierungen dieser Methode überschreiben. In den .NET Framework Versionen 1.0 und 1.1 hat die ToLocalTime -Methode die -Methode aufgerufen GetUtcOffset(DateTime) und bei Rückgabe der Ortszeit an die Sommerzeit angepasst. Ab dem .NET Framework 2.0 hängt das Verhalten der Standardimplementierungen jedoch von der Kind -Eigenschaft des time -Parameters ab. Wenn der Wert Local ist, gibt diese Methode time unverändert zurück. Wenn ihr Wert entweder Utc oder Unspecified ist, geht diese Methode davon aus, time dass utc ist, und konvertiert sie in die lokale Systemzeit, ohne die GetUtcOffset(DateTime) -Methode aufzurufen.

Der folgende Code stellt eine einfache Überschreibung der Standardimplementierungen der ToLocalTime -Methode bereit. In diesem Code stellt die internalTimeZone Variable eine private Instanz der TimeZone -Klasse dar:

public override DateTime ToLocalTime(DateTime time)
{
   if (time.Kind == DateTimeKind.Local)
   {
      return time;
   }
   else if (time.Kind == DateTimeKind.Utc)
   {
      DateTime returnTime = new DateTime(time.Ticks, DateTimeKind.Local);
      returnTime += this.GetUtcOffset(returnTime);
      if (internalTimeZone.IsDaylightSavingTime(returnTime))
         returnTime -= new TimeSpan(1, 0, 0);
      return returnTime;
   }      
   else
   {
      throw new ArgumentException("The source time zone cannot be determined.");
   }      
}

Gilt für:

Siehe auch