TimeZone.ToLocalTime(DateTime) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 time
yerel 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 time yerel 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 time yerel 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 destinationTimeZone
TimeZoneInfo.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