从Windows Phone获取“真实”时间

时间:2013-01-16 22:36:36

标签: c# .net-4.0 windows-phone

我在我的应用程序中有一个功能,我将Unix Epoch的毫秒数与当前时间的比较:

 DateTime.Now

这导致时间不同,即:剩余2分钟或剩余4分钟。

我发现的问题是,有些用户没有在手机上正确设置时钟,或者故意将它略微放在前面。

这导致上面的计算不正确。

有没有办法围绕这个,即;从别人那里读“真实”的时间。 时间计算是在电话而不是服务器端完成的。

1 个答案:

答案 0 :(得分:6)

IMO你的问题不是实现而是设计。

由于各种各样的原因,用户的时间可能是错误的:用户选择,合法(例如在俄罗斯定义时区的法律和每隔几年改变夏令时,这样政府会提醒人们它仍然存在)或技术(硬件故障,移动运营商设备设置不正确)。

您有3个选项可供修复:

  1. 让服务器返回TimeSpan而不是DateTime。

  2. 让服务器获取客户端的当前时间,并在客户端的时钟内返回ETA。

  3. (最复杂,仅对非常时间敏感的任务需要,例如“Solar + Lunar Eclipse Schedule”应用程序)在启动和激活您的应用程序时,与您的服务器协商有关UTC日期+之间的时差客户端设备上的时间和服务器的时钟。