Mi suposición es que va a ser tanto en milisegundos o segundos desde una época determinada - muy posiblemente la época Unix del 1 de enero de 1970, la medianoche UTC.
Así que el código sería algo como:
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);
}
Realice los cambios obvios de segundos, o de una época diferente :)
Un enfoque alternativo es crear un TimeSpan
de los segundos/milisegundos desde la época y, a continuación, agregarlo a la época:
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);
}
no sé de ninguna diferencia significativa entre ellos - a pesar del hecho de que AddMilliseconds
toma un double
en lugar de un long
sugiere que para valores muy grandes, el enfoque TimeSpan
puede ser preferible. Dudo que vaya a hacer ninguna diferencia, aunque :)
por * UTC int *, ¿te refieres a algo así como segundos desde la época? – bzlm