WP8 Datetime.UtcNow返回一个相差几秒的时间

时间:2014-05-30 06:53:32

标签: c# datetime windows-phone-8 utc

我正在使用UTC秒时间戳同步到服务器。当设备时间戳更大时,它会将数据推送到服务器,当服务器时间戳更大时,它从服务器拉出。

每次更改数据时,手机中的时间戳都会更新为最新时间。我使用以下函数将日期转换为秒

    long seconds = FromDateToSeconds(DateTime.UtcNow);

    public long FromDateToSeconds(DateTime date)
    {
        var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);

        return Convert.ToInt64((date - epoch).TotalSeconds);
    }

当数据同步时,服务器返回更新的时间戳,该时间戳在设备中更新。何时在同步后更改数据jus。 FromDatetoSeconds函数返回的时间戳小于上一个服务器同步时间戳。我看到1-15秒的差异?

我不明白这是怎么回事。 UtcNow会返回正确的时间吗?或者是10-20秒后关闭?

一些帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

手机中的时钟不会同步,除非移动运营商启用同步(我认为没有任何运营商)。

这意味着即使不是几分钟,手机中的时钟也只有几秒钟!你唯一能做的就是计算时间。抵消。

要执行此操作,请从时间服务器中提取当前时间,然后计算差异。始终添加此差异。