Проблема расчета разницы во времени c # - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть проверка, которую я запускаю на сервере и в настольном приложении, но результат не согласован.

Это код на сервере, который добавляет временную метку к строке, которую я отправляю обратно внастольное приложение.Так что возвращаемая строка истекает через некоторое время и не может быть использована, поскольку она зашифрована.

Сервер:

Double unixTimestamp = (double)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
DateTime TodayDate = UnixTimeStampToDateTime(unixTimestamp);

Настольное приложение:

//li.tStamp this comes from the server

DateTime time = UnixTimeStampToDateTime(Convert.ToDouble(li.tStamp));
Double unixTimestamp = (double)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
DateTime time2 = UnixTimeStampToDateTime(unixTimestamp);

Условие:

double SecondsDifference = time2.Subtract(time).TotalSeconds;
if (SecondsDifference > 0 && SecondsDifference < 30)
{
    // DO SOMETHING HERE
}

Дело в том, что результат не соответствует емуработает на одном компьютере, а не на другом, что я здесь делаю не так?

public static DateTime UnixTimeStampToDateTime(double unixTimeStamp)
{
    // Unix timestamp is seconds past epoch
    System.DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc);
    dtDateTime = dtDateTime.AddSeconds(unixTimeStamp).ToLocalTime();
    return dtDateTime;
}
...