Java 时区原始偏移量

Java 时区原始偏移量,java,php,date,time,timezone,Java,Php,Date,Time,Timezone,在研究时区时,我发现: 在南半球,例如智利 我们有 以下值: 在北半球,例如荷兰 (): 这也不是我第一次看到rawOffset(在Java中)也依赖它 我的目标是使用原始偏移量建立一个时区下拉菜单,显示每组城市的UTC偏移量,现在使用非DST偏移量,但我上面提到的帖子表明,这对于南半球是错误的 编辑: GeoNames的Marc告诉我,他们使用Java方法获得原始偏移量 任何Java向导都知道他们是如何做到的?或者我可以在哪里浏览他们的源代码getRawOffset() 关于如何在PH

在研究时区时,我发现:


在南半球,例如智利 我们有 以下值:


在北半球,例如荷兰 ():

这也不是我第一次看到
rawOffset
(在Java中)也依赖它

我的目标是使用原始偏移量建立一个时区下拉菜单,显示每组城市的UTC偏移量,现在使用非DST偏移量,但我上面提到的帖子表明,这对于南半球是错误的


编辑:

GeoNames的Marc告诉我,他们使用Java方法获得原始偏移量

任何Java向导都知道他们是如何做到的?或者我可以在哪里浏览他们的源代码
getRawOffset()



关于如何在PHP中获得原始偏移量有什么想法吗?

不清楚为什么需要原始偏移量

在PHP中,给定一个时间+位置,可以实例化一个
DateTime
对象,然后调用其
getOffset()
方法来计算当前时区偏移量。迭代不同的位置,这应该是所有你需要得到你的下拉菜单,不是吗


请参见

您对“原始偏移量”还有其他名称吗?您需要使用什么?另一个问题一点也不清楚。我也不确定这个问题是什么,但也许能以某种方式告诉你你在寻找什么。@戈登:我已经在使用
DateTimeZone::getTransitions()
,但它只返回一个带偏移量的字段和另一个布尔字段(
isdst
),我想我不能从那里算出原始偏移量。@hakre:我不这么认为,我知道标准偏移量(即不在DST时与UTC的偏移量)、DST偏移量和原始偏移量。。。
rawOffset gives the fixed timezone.
dstOffset gives the civil time offset from GMT on July 1st
gmtOffset gives the civil time offset from GMT on January 1st
rawOffset = -4 indicating the timezone
dstOffset = -4
gmtOffset = -3, which means that daylight saving time is in use in January.
rawOffset = 1
dstOffset = 2
gmtOffset = 1, indacting that daylight saving time is in use in July.