2011-10-19 147 views
3

雖然在時區做一些研究,我發現這個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的告訴我,他們得到的原料通過使用Java方法抵消。

任何Java嚮導都知道他們是如何做到的?或者我可以瀏覽他們的源代碼getRawOffset()


關於如何在PHP中獲得原始偏移量的任何想法?

+0

你有「原始偏移」任何其他的名字? – hakre

+0

你有什麼合作?從其他問題來看,這一點並不清楚。 – Jon

+0

不知道問題是什麼,但也許http://php.net/manual/en/datetimezone.gettransitions.php可以給你你想要的東西。 – Gordon

回答

0

目前尚不清楚爲何需要原始膠印。

在PHP中,給定時間+位置,您可以實例化一個DateTime對象,然後調用它的getOffset()方法來計算當前時區偏移量。遍歷不同的位置,這應該是你需要得到你的下拉菜單,不是嗎?

http://www.php.net/manual/en/datetime.getoffset.php