问题描述
如何计算服务器时间和GMT时间之间的确切时差? 我想在特定时间向服务器发送POST请求,但是我知道服务器时间不准确,因此我想计算服务器时钟的不准确度(毫秒)以按时发送请求。会阻止我) 我在ubuntu上尝试了此代码,但只显示服务器时间。
curl -I --silent www.server.com | grep "^Date"
如果我可以计算出我的电脑和服务器时钟之间的差异,那对我很有帮助。
解决方法
当然有很多选择。这是一个建议。
编写运行您的curl
和grep
命令的shell脚本或.bat文件,将结果馈送到您编写的程序中。
用Java或Java虚拟机上运行的另一种语言编写程序,因为尽管所有主要的编程语言都可以,但是这可能对日期和时间有最好的支持。
在您的程序中,您可以使用DateTimeFormatter.RFC_1123_DATE_TIME
将服务器时间解析为OffsetDateTime
。将PC时间作为另一个OffsetDateTime
,然后使用Duration.between()
来找出差异(正数或负数)。
请注意,从读取服务器时间到读取PC时间会有延迟,因此结果将不准确。如果您想更好地估计上下限,则可以在读取服务器时间前后读取PC时间。