2013-09-23 11 views
6

Ci sono un certo numero di domande su questo sito che spiegano come fare questo. Il mio problema I quando faccio quello che sembra funzionare per tutti gli altri non ottengo la data o l'ora corretta. Il codice è ...Conversione di tick in DateTime

long numberOfTicks = Convert.ToInt64(callAttribute); 
startDateTime = new DateTime(numberOfTicks); 

Il valore del callAttribute è = "1.379.953,111 mila"

Dopo la conversione è il valore di numberOfTicks = 1379953111

Ma la DateTime finisce per essere startDateTime = {1/1/0001 12:02:17 AM}

Ho preso lo stesso valore per le zecche e l'ho convertito online e viene visualizzata la data/ora corrette.

Cosa sto sbagliando?

+0

Quale valore si aspetta? – Anthony

+0

possibile duplicato di [Come convertire il timestamp UNIX in DateTime e viceversa?] (Http://stackoverflow.com/questions/249760/how-to-convert-unix-timestamp-to-datetime-and-vice-versa) – Romoku

+0

È il numero di zecche e non ha niente a che fare con i secondi. La data/ora che mi aspetto è il 23/09/2013 09:18:31. Se inserisco il numero in Epoch Converter, ricevo la data/ora corretta indietro. – Gary

risposta

17

Il tuo valore non sembra essere un numero di zecche; Ho il sospetto che sia un timestamp UNIX (numero di secondi dal 1970/01/01 UTC)

Ecco una funzione per convertire da un timestamp UNIX:

static readonly DateTime _unixEpoch = 
    new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); 

public static DateTime DateFromTimestamp(long timestamp) 
{ 
    return _unixEpoch.AddSeconds(timestamp); 
} 
+2

Per salvare le persone dal dover controllare, il valore della domanda di '1379953111' restituire' 9/23/2013 4:18:31 PM', che indica sicuramente che questa è la risposta giusta presumendo che l'utente abbia recentemente utilizzato un 'DateTime . Ora o simili e probabilmente si trova in un fuso orario diverso o in un paio d'ore in una direzione o nell'altra. – Anthony

+2

Dovresti specificare il "tipo" dell'epoca Unix come Utc, dato che è così che viene definita l'epoca Unix. –

+0

@JonSkeet, buon punto; Ho aggiornato il codice. –

Problemi correlati