Преобразование тиков в DateTime

На этом сайте есть ряд вопросов, объясняющих, как это сделать. Моя проблема, когда я делаю то, что, кажется, работает для всех остальных, я не получаю правильную дату или время. Код...

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

Значение callAttribute is = "1379953111"

После его преобразования значение numberOfTicks= 1379953111

Но DateTime заканчивается startDateTime= {1/1/0001 12:02:17 AM}

Я взял то же значение для тиков и конвертировал его в онлайн, и он пришел к правильной дате/времени.

Что я делаю неправильно?

Ответ 1

Ваше значение не похоже на количество тиков; Я подозреваю, что это временная метка UNIX (количество секунд с 1970/01/01 UTC)

Здесь функция для преобразования из метки времени 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);
}