TimeZone.ToLocalTime(DateTime) Yöntem

Tanım

Belirtilen tarih ve saat değerine karşılık gelen yerel saati döndürür.

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

Parametreler

time
DateTime

Eşgüdümlü Evrensel Saat (UTC) saati.

Döndürülenler

DateTime Değeri öğesine karşılık gelen timeyerel saat olan bir nesne.

Açıklamalar

Aşağıdaki tabloda parametresi ile DateTime bu yöntem tarafından döndürülen değer arasındaki time ilişki gösterilmektedir.

time Parametre Davranış Döndürülen değer
Eşgüdümlü Evrensel Saat (UTC) saati (DateTimeKind.Utc). Saati UTC'den yerel saate dönüştürür. DateTime Değeri öğesine karşılık gelen timeyerel saat olan bir nesne.
Yerel saat (DateTimeKind.Local). Dönüştürme gerekmez. DateTime parametresiyle temsil edilen değer.time
Belirtilmemiş bir saat (DateTimeKind.Unspecified). Saatin UTC olduğunu varsayar ve UTC'den yerel saate dönüştürür. DateTime Değeri öğesine karşılık gelen timeyerel saat olan bir nesne.

Yerel saat dilimi gün ışığından yararlanma saatini gözlemliyorsa, ToLocalTime dönüştürmeyi gerçekleştirirken geçerli ayarlama kuralını time uygular.

Not

ToLocalTime yöntemi yalnızca yerel saat dilimi için geçerli yaz saati ayarlama kuralını tanır. Sonuç olarak, yalnızca en son ayarlama kuralının geçerli olduğu dönemde belirli bir UTC saatine karşılık gelen yerel saati doğru bir şekilde döndürmek garanti edilir. Önceki ayarlama kuralına tabi geçmiş bir tarih ve saat değeriyse time yanlış sonuçlar döndürebilir.

ToLocalTime yöntemi, parametresi olarak TimeZoneInfo.ConvertTimeFromUtc ayarlanmış yöntemine destinationTimeZoneTimeZoneInfo.Localkarşılık gelir. Mümkün olduğunda yöntemini kullanın TimeZoneInfo.ConvertTimeFromUtc .

Devralanlara Notlar

Gerekli olmasa da, çoğu durumda .NET Framework sürüm 2.0 altında çalışan türetilmiş sınıflar bu yöntemin varsayılan uygulamasını geçersiz kılmalıdır. .NET Framework sürüm 1.0 ve 1.1'de ToLocalTime yöntemi yöntemini çağırdı GetUtcOffset(DateTime) ve yerel saati döndürürken gün ışığından yararlanma saati için ayarlandı. Ancak, .NET Framework 2.0'dan başlayarak, varsayılan uygulamanın davranışı parametresinin Kind özelliğine time bağlıdır. Değeri ise Local, bu yöntem değişmeden döndürür time . Değeri veya UnspecifiediseUtc, bu yöntem UTC olduğunu varsayar time ve yöntemini çağırmadan yerel sistem zamanına GetUtcOffset(DateTime) dönüştürür.

Aşağıdaki kod, yönteminin varsayılan uygulamasının basit bir geçersiz kılmasını ToLocalTime sağlar. Bu kodda internalTimeZone değişkeni sınıfının özel bir örneğini TimeZone temsil eder:

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.");
   }      
}
Public Overrides Function ToLocalTime(time As Date) As Date
   If time.Kind = DateTimeKind.Local Then
      Return time
   ElseIf time.Kind = DateTimeKind.Utc Then
      Dim returnTime As New Date(time.Ticks, DateTimeKind.Local)
      returnTime += me.GetUtcOffset(returnTime)
      if internalTimeZone.IsDaylightSavingTime(returnTime) Then
         returnTime -= New TimeSpan(1, 0, 0)
      End If
      Return returnTime      
   Else
      Throw New ArgumentException("The source time zone cannot be determined.")
   End If      
End Function

Şunlara uygulanır

Ayrıca bkz.