Java 从GMT时间计算本地时间偏移

Java 从GMT时间计算本地时间偏移,java,Java,我有一个要求,我只有GMT时间,没有任何偏移,例如15:00:00,我的要求是找出这个GMT时间属于哪个时区,我曾试图通过使用本地时间并将其转换为GMT时间并进行一些比较来解决此问题,但我认为这可能不是正确的方法。假设时间肯定与GMT偏移,您应该能够使用以下公式生成GMT时间戳,然后比较两者。您得到的答案(转换回小时数)应该是偏移量,然后您可以查找该偏移量 new Date().getTime(); 请注意,这不考虑夏令时/夏令时等,并假设给定的时间是现在,因此可以与当前GMT时间进行比较。具

我有一个要求,我只有GMT时间,没有任何偏移,例如15:00:00,我的要求是找出这个GMT时间属于哪个时区,我曾试图通过使用本地时间并将其转换为GMT时间并进行一些比较来解决此问题,但我认为这可能不是正确的方法。

假设时间肯定与GMT偏移,您应该能够使用以下公式生成GMT时间戳,然后比较两者。您得到的答案(转换回小时数)应该是偏移量,然后您可以查找该偏移量

new Date().getTime();
请注意,这不考虑夏令时/夏令时等,并假设给定的时间是现在,因此可以与当前GMT时间进行比较。具体来说,请记住,如果像英国和澳大利亚一样,其夏季/冬季周期颠倒,则时区可能会波动几个小时,因此+11小时的时区偏移量在任何给定时间点实际上可能为+10或+12。有些国家甚至在同一时区根本不使用DST

还要注意,整个时区偏移点和使用集中时间(如UTC)是为了避免上述混淆。顾名思义,你做的事情很长,并且引入了不确定性


因此,可能有一个国家在北半球变化+/-1小时,一个国家在南半球变化+/+1小时,还有一个国家在赤道附近持续使用相同的时间。。。而且你也不知道哪个会在那个时区。你可以找到偏移量,但仅此而已。

分享你的代码,我们就可以告诉你出了什么问题。@Bathsheba加上ahem Scotland似乎是合适的:我不认为他要求将GMT转换为时区,我想他说的是,他有一个当前时间,但没有偏移量(即没有参考该时间所在的时区),并试图计算出偏移量。现在的时间是14:42,所以如果给出的时间是18:42,他正在试图找到偏移量ie+4 zakSyed,我想你需要澄清你的问题,但我的建议是将所有内容都转换为UTC,而不是GMT。UTC应始终尽可能用于时间,然后根据本地计算的偏移量在本地机器上显示时间。@LuísRamalho:苏格兰可以得到自己的时区,他们没有我们的时区。@Sharpy310,这是一个国家。只是还没有独立。