Java 输入的GMT偏移:纬度和经度
若我通过纬度和经度,作为响应,我需要GMT时区值 例如:Java 输入的GMT偏移:纬度和经度,java,Java,若我通过纬度和经度,作为响应,我需要GMT时区值 例如: 纬度:21.7679 经度:78.8718 响应除外:格林尼治时间+05:30 我不想使用任何web服务。如果您不想使用web服务,则需要大量信息才能获得准确的结果。然而,有一个黑客很容易给出近似结果: Divide longitude by 15 根据: 。。。 理论上,每个时区都有15度宽,相当于平均太阳时间相差一小时。时区的形状在实践中被改变,以匹配国内和国际边界。格林威治子午线以东或以西每15度,民用时间分别向前和向后变化1
- 纬度:21.7679
- 经度:78.8718
- 响应除外:格林尼治时间+05:30
我不想使用任何web服务。如果您不想使用web服务,则需要大量信息才能获得准确的结果。然而,有一个黑客很容易给出近似结果:
Divide longitude by 15
根据:
。。。
理论上,每个时区都有15度宽,相当于平均太阳时间相差一小时。时区的形状在实践中被改变,以匹配国内和国际边界。格林威治子午线以东或以西每15度,民用时间分别向前和向后变化1小时。我们需要将经度除以15才能找到合适的时区(以小时为单位)。例如:
At 150 degrees west (or 150° W) longitude, the time should be 150 degrees divided by 15 degrees = 10 hours behind Coordinated Universal Time (UTC/GMT) (or UTC-10).
At 75 degrees east (or 75° E) longitude, the time would be 75 degrees divided by 15 degrees = 5 hours ahead of UTC/GMT (or UTC+5).
如果不使用某种在线资源或时区多边形定义数据库,您将很难自己实现这一点,因为从经度到时区没有简单的函数。如果你怀疑这一点,看看世界时区地图;即使在经度0,也有多个时区。哦,格林尼治标准时间是上个世纪,UTC是现在的标准时间。@HighPerformanceMark格林尼治标准时间是上个世纪,。让我笑一笑。学究式的时区不会从本初子午线每+/-15度改变一次,时区0以本初子午线为中心,下一个东区和西区从+/-7.5度开始。为了说明我对这个问题的看法,这个方法对于OP的例子是失败的;在印度,它不会产生5H30米的经度偏移。这很公平!这就是为什么写的是近似结果。。。我会使用web服务。