代码之家  ›  专栏  ›  技术社区  ›  user2082616

移动应用程序上的设备时间与服务器时间-最佳做法是什么

  •  1
  • user2082616  · 技术社区  · 6 年前

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

    2 回复  |  直到 6 年前
        1
  •  2
  •   Matt Johnson-Pint    6 年前

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

    1. 在服务器上生成基于UTC的值 独立的 服务器的时区设置。

    2. 以机器可读的格式将这些基于UTC的时间戳传输给您的客户机,该格式保留时间戳使用UTC的上下文。优选地,ISO-8601时间戳,例如 2018-05-09T18:00Z (the Z 表示UTC)。

    3. 在客户端设备上,将该时间戳转换为所需的时区。对于移动设备,选择设备的时区是合理的。那就太好了 不合理的 我不想担心客户的时区设置是否正确。时区是用户控制的首选项。如果设置为其他时区,则应使用该时区。你不应该试图过度补偿。

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

    关于这个主题的更多内容已经写好了。 Start here

        2
  •  1
  •   jdickel    6 年前

    在servertime中存储并保存估计的时间,并将其重新计算到应用程序本身的devicetime中。因此,您的数据在存储/数据库中保持一致,但每个用户都会显示自己的时区。