Полагаю, это будет миллисекунда или секунда с определенной эпохи - вполне возможно, эпоха Unix 1 января 1970 года, полночь UTC.
Так что код будет выглядеть примерно так:
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);
}
Внесите очевидные изменения в течение нескольких секунд или из другой эпохи:)
Альтернативный подход - создать TimeSpan
секунд / миллисекунд с начала эпохи, а затем добавить его вэпоха:
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);
}
Я не знаю какой-либо существенной разницы между ними - хотя тот факт, что AddMilliseconds
принимает double
вместо long
, предполагает, что для очень больших значений TimeSpan
подход может быть предпочтительным.Я сомневаюсь, что это будет иметь какое-либо значение, хотя:)