发布计算时差C#

时间:2018-11-21 09:41:21

标签: c# .net datetime unix-timestamp

我在服务器和桌面应用程序上运行了支票,但结果不一致。

这是服务器上用于将时间戳添加到字符串的代码,我将其发送回桌面应用程序。这样返回的字符串会在一段时间后过期,并且由于已加密而无法使用。

服务器:

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
}

问题是结果不一致,它可以在某些PC上工作,而不能在另一台PC上工作,我在这里做错了吗?

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;
}

0 个答案:

没有答案