2010-07-28 15 views
6

Ho una variabile Periodo di tempo, che ha l'ora nel fuso orario locale ma per un database (orario di tipo freddo) Devo passare UTC. Come faccio a fare questo? Inoltre ho bisogno di ottenere UTC a ora locale per popolare variabile di tempo su pageLoad. Grazie !!!timespan e UTC

risposta

10

Suppongo che vorrei caricare TimeSpan in un DateTime, quindi ottenere l'ora universale da DateTime e convertirlo di nuovo.

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

seguito non converte 20:00 orientale correttamente per UTC Dim dt come nuovo DateTime (time.Ticks) \t \t dt = dt.ToUniversalTime() \t \t Dim dtUniversal Come New TimeSpan (dt.Ticks) – user228777

+0

Le zecche rappresentano forse cose diverse? Sistemi diversi utilizzano diverse rappresentazioni di tick, solitamente la data di inizio del conteggio dei millisecondi. Se è possibile convertire l'intervallo temporale in valori specifici per anno, mese, giorno, ecc. È possibile creare un DateTime da tali valori e quindi convertirlo in UTC. – devios1

+0

Come hai suggerito, come posso creare un datetime? Tutto quello che sto memorizzando nel database è ora e i minuti predefiniti ei secondi sono sempre alwyas 00. es. Il mio valore memorizzato è 01:00:00 come posso convertirlo in dataTime? - grazie – 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

Qual è il motivo di AddDays (1)? – Miles