如何正确地获取另一个城市的当前时间?

时间:2012-11-25 02:21:24

标签: java android time timezone

我已设法阅读网络服务以获取任何特定城市的当前时间。 我可以从Web服务,当前时间(字符串)和偏移量中获得2个重要值。

问题是 如何正确设定任何城市的时间?

选项1:

  • 读取机器/当地时间
  • 计算机器时间以外的UTC / GMT时间
  • 城市时间= UTC时间+/-偏移值
  • 但是当机器时间错误时会发生什么?你也会得到 错了时间吧?

选项2:

  • 以字符串形式读取当前城市时间(2012-11-24 19:30)
  • 解析此时间值并将其设置为日历
  • 我们得到了正确的城市时间
  • 但下一分钟怎么样?当然,每分钟请求Web服务获取当前时间不是一个好的解决方案吗?一旦我们设置它,是否可以保持此Calendar实例每分钟自动运行?

注意:我在这里开发Android时钟小部件。

由于

1 个答案:

答案 0 :(得分:1)

在我看来,选项1要好得多。大多数手机具有惊人的准确时间,因为时间同步是GSM和CDMA不可或缺的一部分。除此之外,我更倾向于使用时钟离线工作而不是要求互联网连接。

如果您担心在面对错误的系统时间时确保准确性,请考虑拨打网络服务以获取当前验证时间。

此验证可以在后台完成,但请记住,Web服务不是最佳时间同步提供程序。我会让不到5分钟差异的事情发生,因为它可能是因为你的服务器不同步或电话花了太长时间。