Java 服务器和浏览器之间的时差

Java 服务器和浏览器之间的时差,java,javascript,datetime,timezone,Java,Javascript,Datetime,Timezone,我们如何测量服务器时间和浏览器时间之间的时间差? 如果我们在浏览器和服务器中都以毫秒为单位计算时间,那么在服务器和浏览器位于两个不同时区的情况下,它能给我准确的结果吗?没有内置方式。您应该在应用程序级别执行此操作。您可以使用javascript检索时间,并将结果发送到服务器,在那个里您可以清楚地知道现在是什么时间。现在比较这些结果 结果将精确到网络延迟 如果你只是想知道时区的差异,那就足够了。然而,如果您想知道网络延迟,您可以估计它:从客户端到服务器发送客户端时间,从服务器到客户端发送服务器时间

我们如何测量服务器时间和浏览器时间之间的时间差?
如果我们在浏览器和服务器中都以毫秒为单位计算时间,那么在服务器和浏览器位于两个不同时区的情况下,它能给我准确的结果吗?

没有内置方式。您应该在应用程序级别执行此操作。您可以使用javascript检索时间,并将结果发送到服务器,在那个里您可以清楚地知道现在是什么时间。现在比较这些结果

结果将精确到网络延迟


如果你只是想知道时区的差异,那就足够了。然而,如果您想知道网络延迟,您可以估计它:从客户端到服务器发送客户端时间,从服务器到客户端发送服务器时间,考虑时区偏移。剩下的是客户端->服务器->客户端延迟。除以2-这是对单向延迟的第一次估计。更好的估计需要更多的统计数据。

没有内置的方法。您应该在应用程序级别执行此操作。您可以使用javascript检索时间,并将结果发送到服务器,在那个里您可以清楚地知道现在是什么时间。现在比较这些结果

结果将精确到网络延迟


如果你只是想知道时区的差异,那就足够了。然而,如果您想知道网络延迟,您可以估计它:从客户端到服务器发送客户端时间,从服务器到客户端发送服务器时间,考虑时区偏移。剩下的是客户端->服务器->客户端延迟。除以2-这是对单向延迟的第一次估计。更好的估计需要更多的统计信息。

您可以通过Javascript获取客户端的时区GMT偏移量,并将该值保存到隐藏字段。以下是一个示例脚本,可用于确定客户端的时区:

var now = new Date();
var currentTimeZoneOffset = now.getTimezoneOffset();
var jan = new Date( now.getFullYear(), 0, 1, 2, 0, 0 ), jul = new Date( now.getFullYear(), 6, 1, 2, 0, 0 );
var hemisphere = ( jan.getTime() % 24 * 60 * 60 * 1000 ) > ( jul.getTime() % 24 * 60 * 60 * 1000 );
var dstOffset = hemisphere ? jan.getTimezoneOffset() : jul.getTimezoneOffset();
var standardOffset = hemisphere ? jul.getTimezoneOffset() : jan.getTimezoneOffset();
var gmtHours = -currentTimeZoneOffset/60;
document.write("GMT time-zone offset: " + gmtHours +"<br>");
var isDstActive = (currentTimeZoneOffset-dstOffset) != 0;
document.write("Daylight saving time is active: " + isDstActive + "<br>");
var isTimezoneWithDst = (dstOffset-standardOffset) != 0;
document.write("DST is observed in this timezone: " + isTimezoneWithDst);
var now=newdate();
var currentTimeZoneOffset=now.getTimezoneOffset();
var jan=新日期(现在是.getFullYear(),0,1,2,0,0),jul=新日期(现在是.getFullYear(),6,1,2,0,0);
变量半球=(一月getTime()%24*60*60*1000)>(七月getTime()%24*60*60*1000);
var=半球?一月getTimezoneOffset():七月getTimezoneOffset();
var standardOffset=半球?七月getTimezoneOffset():一月getTimezoneOffset();
var gmtHours=-currentTimeZoneOffset/60;
文件。写入(“GMT时区偏移量:“+gmtHours+”
”; var IsStactive=(currentTimeZoneOffset dstOffset)!=0; 文档。写入(“夏令时处于活动状态:+isDstActive+”
”; 变量isTimezoneWithDst=(dstOffset standardOffset)!=0; 文件。写入(“在该时区观察到DST:+isTimezoneWithDst”);
您可以通过Javascript获取客户端的时区GMT偏移量,并将该值保存到隐藏字段中。以下是一个示例脚本,可用于确定客户端的时区:

var now = new Date();
var currentTimeZoneOffset = now.getTimezoneOffset();
var jan = new Date( now.getFullYear(), 0, 1, 2, 0, 0 ), jul = new Date( now.getFullYear(), 6, 1, 2, 0, 0 );
var hemisphere = ( jan.getTime() % 24 * 60 * 60 * 1000 ) > ( jul.getTime() % 24 * 60 * 60 * 1000 );
var dstOffset = hemisphere ? jan.getTimezoneOffset() : jul.getTimezoneOffset();
var standardOffset = hemisphere ? jul.getTimezoneOffset() : jan.getTimezoneOffset();
var gmtHours = -currentTimeZoneOffset/60;
document.write("GMT time-zone offset: " + gmtHours +"<br>");
var isDstActive = (currentTimeZoneOffset-dstOffset) != 0;
document.write("Daylight saving time is active: " + isDstActive + "<br>");
var isTimezoneWithDst = (dstOffset-standardOffset) != 0;
document.write("DST is observed in this timezone: " + isTimezoneWithDst);
var now=newdate();
var currentTimeZoneOffset=now.getTimezoneOffset();
var jan=新日期(现在是.getFullYear(),0,1,2,0,0),jul=新日期(现在是.getFullYear(),6,1,2,0,0);
变量半球=(一月getTime()%24*60*60*1000)>(七月getTime()%24*60*60*1000);
var=半球?一月getTimezoneOffset():七月getTimezoneOffset();
var standardOffset=半球?七月getTimezoneOffset():一月getTimezoneOffset();
var gmtHours=-currentTimeZoneOffset/60;
文件。写入(“GMT时区偏移量:“+gmtHours+”
”; var IsStactive=(currentTimeZoneOffset dstOffset)!=0; 文档。写入(“夏令时处于活动状态:+isDstActive+”
”; 变量isTimezoneWithDst=(dstOffset standardOffset)!=0; 文件。写入(“在该时区观察到DST:+isTimezoneWithDst”);
这似乎完全取决于用户的时钟设置时间。从技术上讲,我可以将时钟设置为我喜欢的任何时间。听起来你应该考虑使用。让我们从如何计算浏览器时间和服务器时间开始。请给我们看一些代码好吗?还有你为什么要这么做。你想达到什么目的?@Berehousive:是的,我同意这一点。还是有办法得到差异吗?似乎这完全取决于用户将时钟设置为什么时间。从技术上讲,我可以将时钟设置为我喜欢的任何时间。听起来你应该考虑使用。让我们从如何计算浏览器时间和服务器时间开始。请给我们看一些代码好吗?还有你为什么要这么做。你想达到什么目的?@Berehousive:是的,我同意这一点。还有什么办法可以让两者有所不同呢?我不太担心网络延迟。是的,正如你提到的,我计划做的就是得到一个time-frm-JS并将其发送到服务器。在浏览器和服务器的时区不同的情况下,这种比较是否准确?以毫秒为单位的时间差是否也给了我包括时区偏移在内的时间差?我不太担心网络延迟。是的,正如你提到的,我计划做的就是得到一个time-frm-JS并将其发送到服务器。在浏览器和服务器的时区不同的情况下,这种比较是否准确?以毫秒为单位的时间差是否也给出了包括时区偏移在内的差?