2013-03-28 11 views
6

Saat dilimi ile dize olarak tarih değeri kabul eden bir işlem var (veriler dış sistemden geliyor). Bu tarih saatini, yerel makinelerde saat diliminde ne zamana çevireceğimi söylemem gerekiyor. yerine CETFarklı saat dilimlerinden gün ışığından yararlanma saati ile dönüşüm süresi dahil

string cetId = "Central European Standard Time"; 
if (timeZone == "CET") 
{ 
    TimeZoneInfo cetZone = TimeZoneInfo.FindSystemTimeZoneById(cetId); 
    returnDateTime = TimeZoneInfo.ConvertTime(statusDateTime, cetZone, TimeZoneInfo.Local); 
} 
else if (timeZone == "CEST") 
{ 
    TimeZoneInfo cestZone = TimeZoneInfo.FindSystemTimeZoneById(cetId); 
    returnDateTime = TimeZoneInfo.ConvertTime(statusDateTime, cestZone, TimeZoneInfo.Local); 
} 

zaman CEST (avrupa merkez yaz saati) olup olmadığını belirli bir şey yapmak gerekir mi (avrupa merkez süresi) veya .net TimeZoneInfo nesne bu senaryoyu ele alır:

Örnek kod?

cevap

1

İyi olmalısınız.

ConvertTime'e hem zaman dilimlerinin (kaynak ve hedef) ne olduğunu söylüyorsunuz.

Bu konuda belirli bir sorununuz var mı yoksa sadece onay için mi soruyorsunuz?

+0

: Aynı zamanda yararlı/ortak/yaz saati isimleri ve kısaltmalar almanın dışında homurtu çalışmalarının biraz alır Zamanın düzgün bir şekilde tercüme edilmesinden endişeleniyordum – Tadhg

0

The value of the Kind property of the dateTime parameter must correspond to the sourceTimeZone parameter, as the following table shows. 

TimeZoneInfo.ConvertTime() itibaren sadece size StatusDateTime ait 'Kind' özelliği için dikkat etmeniz gerektiğini eklemek istiyorum. Senin durumunda, 'Belirtilmemiş' olmalı.

https://github.com/b9chris/TimeZoneInfoLib.Net/blob/master/TimeZoneInfoLib/TimeZone/UtcTimeZone.cs

sizin için yararlı olabilirdi, ya da sadece bunu üzerine almak isteyebilirsiniz:

0

'Mülahaza' bölümü göz atın Ben dönüşümler bu tür kapsülleyen bir süre önce bir kütüphane oluşturdu kodunuzu iki kere kontrol edin. Kapsüllediği şeylerden biri @ Brian'ın uyarısıdır. Bu yüzden .Kind özelliği yanlışsa, yararlı istisnalar atan .Kind özelliği ile ilgili açık yöntem adları vardır. Ben yaz saati saat dilimine ve bağlı farklı tarihlerde devreye giriyor bu sadece endişeliydi

https://github.com/b9chris/TimeZoneInfoLib.Net/blob/master/TimeZoneInfoLib/TimeZone/TimeZoneShortNameMap.cs

İlgili konular