【发布时间】:2011-12-11 00:09:47
【问题描述】:
在对时区进行一些研究时,我发现了这个interesting post on the GeoNames forum:
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
在南半球,例如智利 (http://ws.geonames.org/timezone?lat=-33.46912&lng=-70.641997) 我们有 以下值:
rawOffset = -4 indicating the timezone
dstOffset = -4
gmtOffset = -3, which means that daylight saving time is in use in January.
在北半球,例如荷兰 (http://ws.geonames.org/timezone?lat=51.589322&lng=4.774491):
rawOffset = 1
dstOffset = 2
gmtOffset = 1, indacting that daylight saving time is in use in July.
rawOffset 也不是第一次看到了,this SO answer(Java 中)也依赖它。
我的目标是使用原始偏移量来构建一个时区下拉菜单,显示每组城市的 UTC 偏移量,现在 I'm listing all the transitions for the timezone 并使用非 DST 偏移量,但我上面提到的帖子表明南半球是错误的。
编辑: http://download.oracle.com/javase/1.4.2/docs/api/java/util/TimeZone.html#getRawOffset%28%29
GeoNames 的 Marc 告诉我,他们使用 Java 方法获得了原始偏移量。
任何 Java 向导都知道他们是如何做到的吗?或者在哪里可以浏览他们getRawOffset()的源代码?
关于如何在 PHP 中获取原始偏移量的任何想法?
【问题讨论】:
-
“原始偏移”还有其他名称吗?
-
你需要处理什么?从其他问题根本不清楚。
-
也不确定问题是什么,但也许php.net/manual/en/datetimezone.gettransitions.php 可以以某种方式为您提供所需的内容。
-
@Gordon:我已经在使用
DateTimeZone::getTransitions(),但它只返回一个带有偏移量的字段和另一个布尔字段(isdst),我想我无法弄清楚原始从那里偏移。 -
@hakre:我不这么认为,我知道标准偏移量(也就是不使用 DST 时与 UTC 的偏移量)、DST 偏移量和原始偏移量......
标签: java php date time timezone