在客户端-服务器应用程序中处理时间

本文关键字:处理 时间 应用程序 服务器 客户端 | 更新日期: 2023-09-27 18:24:38

对于我正在开发的iPhone聊天应用程序,我想知道如何处理所有时区问题。我的意思是,当客户端1向客户端2发送消息时,他们都会在消息旁边看到正确的时间(日期)。

到目前为止,这就是我认为我需要做的:

  1. 客户端1向服务器发送消息,客户端1使用其本地时间显示消息旁边的日期
  2. 服务器(c#)获取消息并将其保存到数据库中,同时使用DateTime.UtcNow将当前时间保存在消息旁边
  3. 当client2登录时,他从服务器获得UTC时间的消息,并将其转换为本地时间

这样做吗?将日期从服务器发送到客户端的最佳方式是什么?在服务器中,日期作为DateTime对象保存到数据库中,我可以将其转换为什么格式以发送到客户端?

在客户端-服务器应用程序中处理时间

根据报告时间的准确程度,这里有几个选项:

  1. 如果它需要真正准确,我只会依赖服务器时间。当您从客户端1向服务器发送消息时,请让服务器在其响应中返回与该消息关联的UTC时间。因此,我发送了消息"hello",并在响应体或扩展头中收到了一个200 OK,其中包含UTC时间。然后客户端1显示这个时间(转换为本地时间),客户端2显示相同的时间(转换成本地时间)
  2. 如果准确性不那么重要,那么只需从客户端1发送消息,然后使用您当地的当前时间就更容易了。您仍然可以在服务器上执行UTC操作,并让客户端1使用该时间,但这样您就不需要查看对客户端1消息的响应中的任何内容

关于来回发送日期,请查看NSDateFormatter上的文档。您可以使用一种易于使用的格式,也可以在服务器上执行任何最简单的操作,并在格式化程序上使用自定义dateFormat属性进行解析。