首页 > 解决方案 > 移动应用程序上的设备时间与服务器时间 - 什么是好的做法

问题描述

我正在开发一个客户端-服务器移动应用程序(电子购物),并且在向客户端显示估计的包裹到达时间时无法决定使用什么时间源。我倾向于检索服务器上生成的时间值并将其转换为设备时区,以解决客户端设备上的时间设置不正确的情况。但是,设备上的时区也可以设置不同。是否有任何普遍接受的良好做法?

标签: mobiletimetimezoneclient-server

解决方案


诸如您描述的时间戳之类的时间戳应以 UTC(协调世界时)的形式存储在您的服务器上

  1. 在您的服务器上生成基于 UTC 的值 - 这些值与服务器的时区设置无关

  2. 以机器可读的格式将这些基于 UTC 的时间戳传输到您的客户端,该格式保留时间戳在 UTC 中的上下文。最好是 ISO-8601 时间戳,例如2018-05-09T18:00ZZ表示 UTC)。

  3. 在客户端设备上,将该时间戳转换为所需的时区。对于移动设备,选择设备的时区是合理的。恕我直言,关心客户的时区是否设置正确是非常不合理的。时区是用户控制的首选项。如果它设置为其他时区,那么这就是应该使用的时区。你不应该试图过度补偿。

  4. 使用客户端设备的首选本地化设置将时间戳格式化为人类可读的字符串,并将其显示给用户。

关于这个主题的更多内容已经写过。 从这里开始


推荐阅读