我在我的应用程序中有一个功能,我将Unix Epoch的毫秒数与当前时间的比较:
DateTime.Now
这导致时间不同,即:剩余2分钟或剩余4分钟。
我发现的问题是,有些用户没有在手机上正确设置时钟,或者故意将它略微放在前面。
这导致上面的计算不正确。
有没有办法围绕这个,即;从别人那里读“真实”的时间。 时间计算是在电话而不是服务器端完成的。
答案 0 :(得分:6)
IMO你的问题不是实现而是设计。
由于各种各样的原因,用户的时间可能是错误的:用户选择,合法(例如在俄罗斯定义时区的法律和每隔几年改变夏令时,这样政府会提醒人们它仍然存在)或技术(硬件故障,移动运营商设备设置不正确)。
您有3个选项可供修复:
让服务器返回TimeSpan而不是DateTime。
让服务器获取客户端的当前时间,并在客户端的时钟内返回ETA。
(最复杂,仅对非常时间敏感的任务需要,例如“Solar + Lunar Eclipse Schedule”应用程序)在启动和激活您的应用程序时,与您的服务器协商有关UTC日期+之间的时差客户端设备上的时间和服务器的时钟。