在这里,我正在开发一个带有java套接字的项目,并且在服务器和客户端之间执行正确的时间同步时遇到问题。 我会用一个简单的例子来说明问题:在客户端/服务器java套接字之间同步时间
服务器运行在格林尼治标准时间,并保持与各个项目的数据库。其中一些商品是特价商品,但这些商品在到期前有时间限制。
因此,让我们说,服务器时间现在9:00 AM(北京时间)并没有在10:00(GMT)结束要约项。
客户可以在比服务器不同的时间和时区。所以我们可以说,现在客户端时间是8:00 AM(GMT-1),我走的时候,把它调整到客户的时区,并发现它在1小时内结束于9:00 AM(GMT-1)即。
问题:如何计算用户设置了自定义时间的剩余时间。
例如,在上述客户端设置手动的时钟超前半小时,即8:30 AM(GMT-1)。如果您只是进行时区转换,那么该项目仍将以9:00(GMT-1)结束,因此要约完成的时间不正确(30分钟)。
有人可能会说,一个可能的解决方案是设置客户端问秒时从服务器,而不是确切日期结束的时间。但是我想在客户端实现类似秒数的倒计时。 (如果报价在60秒内结束,则界面将变为60,59,58,...,1,0)。因此,向服务器发送请求每秒以获得剩下的时间不是网络高效的。
还有一件让我担心的事情是,如果您确实要求“时间离开秒”的情况,那么在慢速网络上服务器的响应不会立即发生,所以当客户端收到结果已经关闭了。
在测量一个基本原则是:如果绝对值是不准确的(甚至是未知的),用相对值,在这种情况下,这将是一次差异。 – alk