2008-10-11 12 views
9

C# .net çalışıyorum. Net fx 2.0 farklı saat dilimleri arasında dönüştürme desteklemiyor. UTC'ye dayalı bir zamanlayıcı yazdım ama Londra için DTS dönemlerinde 1 saat hata veriyor. Herhangi bir zaman dilimi içinde doğru saati, doğru DST ayarlarıyla UTC'ye göre ayarlayabilmem için biraz çözüme ihtiyacım var.Nasıl zaman başka bir saat diliminde C UTC zamana dönüştürmek için C#

cevap

10

.NET 3.5 olarak değiştirilmek kesinlikle sorun dışı mı? Hayatınızı çok daha kolaylaştıracak. Aksi takdirde, düz TimeZone ve DaylightSavings sınıfları ile sıkışıp kaldınız, ayrıca bilinen zaman dilimlerini P/Invoke kullanarak getirmelisiniz.

William Stacey bir blog post with some code to do this kullanıyor - ancak denemedim, bu yüzden doğruluğunu garanti edemiyorum. (Benim tecrübemde genellikle oldukça iyidir) :) Eğer hiç kimse size yardımcı olmazsa, benzer kod parçaları yoktur.

Kullanmakta olduğu API'nın geçmiş verilerine erişemediğine inanıyorum, btw. Diğer bir deyişle, DST her zaman'un kuralın zaman içinde değiştiğini bilmek yerine Ekim ayının ilk Pazar günü (ya da kural ne olursa olsun) başladığı varsayılacaktır. .NET 3.5'deki TimeZoneInfo, işletim sisteminin yaptığı tarihsel verileri destekler.

+0

Kabul. P/Invoke işlerini yapan eski kodu gördüm ve 3.5'de TimeZoneInfo bunu tamamen eski haline getiriyor. –

+0

Sonunda platformu 3,5 olarak değiştirmeyi başardım. – MSIL

+0

Merhaba Jon, blog yazısı artık mevcut değil, aptalca bir soru, nereden görebileceğimi veya bana bu bilgiyi bulmama yardımcı olabileceğimi nereden biliyorsun? –

İlgili konular