2010-07-28 22 views
6

Yerel saat diliminde bir zamana sahip olan ancak bir veritabanı için (soğuk tip zaman) UTC'yi geçmem gereken bir Timespan değişkeni var. Bunu nasıl yaparım? Ayrıca, sayfadaki Zaman Dilimi değişkenini doldurmak için UTC'ye Yerel saat almam gerekiyor. Teşekkürler !!!zaman dilimi ve UTC

cevap

10

TimeSpan'ı bir DateTime'a yükler, sonra DateTime'dan evrensel saati alır ve tekrar dönüştürürüm.

var dt = new DateTime(timeSpan.Ticks); 
var utc = dt.ToUniversalTime(); 
+0

doğru UTC doğu 8pm dönüştürmek olmayacak ardından Yeni DateTime Dim dt (time.Ticks) \t \t dt = dt.ToUniversalTime() \t \t Dim dtUniversal As Yeni TimeSpan (dt.Ticks) – user228777

+0

Belki de farklı şeyleri temsil eden keneler mi? Farklı sistemler farklı kene gösterimleri kullanırlar - genellikle milisaniye olarak saymaya başlama tarihi. Zaman çizelgenizi yıl, ay, gün vb. Için belirli değerlere dönüştürebilirseniz, bu değerlerden bir DateTime oluşturabilir ve daha sonra bunu UTC'ye dönüştürebilirsiniz. – devios1

+0

Önerdiğiniz gibi, datetime nasıl yapabilirim? Veritabanında sakladığım tek şey saat ve varsayılan dakika ve saniye alwyas 00'dır. Kayıtlı değerin 01:00:00 olduğunu nasıl dateTime dönüştürürüm? - teşekkürler – user228777

3
TimeSpan LocalTimeToUTCTime(TimeSpan localTime) 
{ 
    var dt = new DateTime(localTime.Ticks); 
    var utc = dt.ToUniversalTime(); 
    return new TimeSpan(utc.Ticks); 
} 
2
class TimeConversion 
{ 
    public static TimeSpan LocalTimeSpanToUTC(TimeSpan ts) 
    { 
     DateTime dt = new DateTime(ts.Ticks).AddDays(1); 
     DateTime dtUtc = dt.ToUniversalTime(); 
     TimeSpan tsUtc = dtUtc.TimeOfDay; 

     return tsUtc; 
    } 

    public static TimeSpan UTCTimeSpanToLocal(TimeSpan tsUtc) 
    { 
     DateTime dtUtc = new DateTime(tsUtc.Ticks).AddDays(1); 
     DateTime dt = dtUtc.ToLocalTime(); 
     TimeSpan ts = dt.TimeOfDay; 

     return ts; 
    } 
} 
+1

AddDays (1) neden nedir? – Miles

İlgili konular