La mia ipotesi è che sta per essere o millisecondi o secondi dal un'epoca particolare - molto probabilmente l'epoca Unix del 1 ° gennaio 1970, a mezzanotte UTC.
modo che il codice sarebbe simile:
private static readonly DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0,
DateTimeKind.Utc);
public static DateTime FromMillisecondsSinceUnixEpoch(long milliseconds)
{
return UnixEpoch.AddMilliseconds(milliseconds);
}
Apportare le modifiche ovvie per secondi, o da un'epoca diversa :)
Un approccio alternativo è quello di creare un TimeSpan
dei secondi/millisecondi dal momento che l'epoca, e poi aggiungerlo al l'epoca:
private static readonly DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0,
DateTimeKind.Utc);
public static DateTime FromMillisecondsSinceUnixEpoch(long milliseconds)
{
return UnixEpoch + TimeSpan.FromMilliseconds(milliseconds);
}
non so di alcuna differenza significativa tra i due - anche se il fatto che AddMilliseconds
prende un double
anziché un long
suggerisce che per valori molto grandi, l'approccio TimeSpan
può essere preferibile. Dubito che farà comunque alcuna differenza :)
fonte
2011-07-03 19:27:56
di * UTC int *, vuoi dire qualcosa come secondi dall'epoca? – bzlm