我正在使用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秒后关闭?
一些帮助将不胜感激。
答案 0 :(得分:0)
手机中的时钟不会同步,除非移动运营商启用同步(我认为没有任何运营商)。
这意味着即使不是几分钟,手机中的时钟也只有几秒钟!你唯一能做的就是计算时间。抵消。
要执行此操作,请从时间服务器中提取当前时间,然后计算差异。始终添加此差异。