I first got into timezones when I working on an calendar app which displayed various times of day which are pertinent to Jewish daily life. The app would display calculated times which of course would differ based on the timezone of the given location. As I investigated into timezones, I found them to be fairly complicated. Not all timezones are even on the hour…some are at 30 minute offsets, some at 45 minutes, and historically there have been even stranger offsets than that.
To make matters worse, there’s the whole issue of Daylight Saving Time. Apparently some places have it some don’t. Some countries have a set date for DST, some pick a new one each year depending on circumstances. And of course, DST does not mean only adding one hour.
My research led me to what is “colloquially” known as the “Olson” database. The Olson database is a de facto standard in the world of keeping time. The most recognizable part of the way timezones are identified is the {Continent}/{Location} signature. For example, the timezone that I am in is called “America/New_York”. The Olson database tracks all historical information about timezones back at least until 1970. By timezone information, this also means transitions for DST and the GMT offset for both standard time and DST.
The best part of all of this, is that PHP 5 and up has built in support for understanding Olson timezones. This means that you all you need is the timezone id (the tzid), and you can have PHP worry about all the timezone and DST calculations.
Recently, I was working on another app which required members to select a timezone. The app is written on top of Expression Engine which contains a full blown membership system. The membership system includes a timezone setting. Let’s take a quick look at the what this look like:

Selecting a timezone in Expression Engine
Notice the checkbox that says “Daylight Saving Time”? This means that the user has to remember, every year, to select that checkbox when DST happens. Not very fun. Expression Engine is written in PHP 4, and the authors intend to keep that, stubbornly, for as long as possible.
I’m not here to wrant on Expression Engine (that’s for another time), but either way, this would not suit my purposes. I can’t rely on users remembering to “spring forward” when they have to.
The alternative is to provide a list based on the Olson database. The problem is that, as of this post, their are 560 tzid’s in the database, and they are not “friendly” nor recognizable to anybody but geeks.
I started looking around on the Interwebs trying to see what other people came up with. There was a question on Stackoverflow.com which hit the nail on the head, but anybody answering the question missed the point completely.
Eventually I realized that I must present a list similar to Expression Engine’s list, but which has the values as Olson tzid’s. The first step was to clean up the list a little. Much of the information is redundant, and only there for historical purposes. For instance, until 2006, much of Indiana did not observe DST. After 2006, however, the story changed. This explains why there are so many Olson tzid’s with Indiana in them. However, for all practical purposes, they’re the same.
The question is, what defines them as the same? I determined the best way would be to look at the DST transition date (if applicable), and the resulting offsets and compare them. Fortunately, PHP has a function that does this…timezone_transitions_get().
My idea was to pull in all the timezones and their transistions into excel and sort them by offset, and transition dates to identify which tzids are similar. After that, to figure out a friendly name to call them.
Doing more research I found somebody made a spreadsheet which tried to map Windows timezone names to Olson tzid’s. I used this a base reference for the names I chose, although I found not all the data in that spreadsheet was accurate (one day I will submit my changes to the author). Some timezones I had to come up with my own names like “America/Havana” which has different rules for any place in its timezone. I decided to call this (GMT-05:00) Cuba for lack of anything else.
In the end, I came up with a list of about 80 or so timezones, and I’m somewhat proud of my results:
Here is the list:
If anybody can offer any improvements to this or a different suggestion altogether, that would be great.
#1 by ysth at March 13th, 2009
Nice work. One clarification: Olson timezones have historical changes back through much earlier than 1970, but they don’t create distinct timezones when the only differences were earlier than 1970.
#2 by David M at May 25th, 2009
This is a bad way to do it because you’re mapping “static” timezones (e.g. (GMT)) to geographical locations (e.g. Europe/London) which have “dyanamic” times. PHP will use the time of the location which will change throughout the year when daylight savings comes into effect. Europe/London will be GMT for 6 months but for the other 6 months it will will be BST, which is GMT+1.
For your list to be correct you have to use the actual “static” identifiers i.e. GMT, GMT+1, etc, as the option values.
It is also extra work for the user who will need to switch DST on/off at the appropriate time. If you do it the way I did at http://blog.boxedice.com/2009/03/21/handling-timezone-conversion-with-php-datetime/ then that will be handled automatically.
#3 by Avi at May 25th, 2009
I think you misunderstood my post. I’m mapping the “friendly name” which people recognize, to the Olson name which PHP can handle. So somebody on the east coast of the US will see (GMT-05:00) Eastern Time (US & Canada) and recognize that as their timezone. Meanwhile they get the “dynamic” identifier America/New_York stored in the database. Of course now their DST will be handled automatically for them.
#4 by David M at May 25th, 2009
I understand that if the user wants GMT -5 and they select that from your drop menu as “(GMT-05:00) Eastern Time (US & Canada)”, that will map to “America/New_York”. However, New York is not always GMT -5. For example, it is currently GMT -4. This means your mapping is incorrect.
#5 by Avi at May 25th, 2009
In my experience people do not think in DST terms. People on the East Coast of the united states do not think of their time in the summer as GMT -4…the think of it as GMT -5 plus one extra hour.
Either way, the important part of my list here is the friendly names…not the GMT offsets. The GMT offsets just provide a convenient way to list the timezones in an order that makes sense.
The important part is that the user can identify their timezone in a way that makes sense to them, and I can store it in a way that makes sense to me.
#6 by User_Friendly at July 9th, 2009
Very Good work! I was looking throughout the net for TZ lists and Your beats all I’ve found! Thanks a lot!
#7 by Robert Gunther at July 15th, 2009
I like your list, will be using it on our website to allow users to set their timezone.
#8 by DC at September 19th, 2009
Excellent. I’ve gone crazy looking for a similar human-friendly list. This is the only one so far.
#9 by Charles Himmer at October 7th, 2009
Thanks for posting this. I was looking all over for this and figured somebody had done this.
#10 by John at November 29th, 2009
Fantastic! Been searching for weeks for something like this. After a bunch of different options, I’ll see if I just use this one. If only you could automatically detect the user’s setting in Javascript. Presently, I only find selection boxes which have values like “+01:00, 1″ which can be automatically set by JS…
Thanks
John
#11 by chris at February 4th, 2010
This is great, but since it is statically generated, it must be manually updated in the future as boundaries may change. What would be more interesting is a script that can generate the output you created.
#12 by Aris at March 6th, 2010
Thanks! I too was looking for a shortened “human-friendly” list that’s similar to the drop-down in Google Calendar and this is the closest one.
#13 by Jay at October 17th, 2010
Thanks – this was very helpful.
By the way, you have two entries for Kamchatka.
#14 by Shawn Adrian at December 11th, 2010
Thanks so much! Btw, I made it into an array, if anyone else would like to use it:
$list = array(
‘Pacific/Midway’ => ‘(GMT-11:00) Midway Island, Samoa’,
‘America/Adak’ => ‘(GMT-10:00) Hawaii-Aleutian’,
‘Etc/GMT+10′ => ‘(GMT-10:00) Hawaii’,
‘Pacific/Marquesas’ => ‘(GMT-09:30) Marquesas Islands’,
‘Pacific/Gambier’ => ‘(GMT-09:00) Gambier Islands’,
‘America/Anchorage’ => ‘(GMT-09:00) Alaska’,
‘America/Ensenada’ => ‘(GMT-08:00) Tijuana, Baja California’,
‘Etc/GMT+8′ => ‘(GMT-08:00) Pitcairn Islands’,
‘America/Los_Angeles’ => ‘(GMT-08:00) Pacific Time (US & Canada)’,
‘America/Denver’ => ‘(GMT-07:00) Mountain Time (US & Canada)’,
‘America/Chihuahua’ => ‘(GMT-07:00) Chihuahua, La Paz, Mazatlan’,
‘America/Dawson_Creek’ => ‘(GMT-07:00) Arizona’,
‘America/Belize’ => ‘(GMT-06:00) Saskatchewan, Central America’,
‘America/Cancun’ => ‘(GMT-06:00) Guadalajara, Mexico City, Monterrey’,
‘Chile/EasterIsland’ => ‘(GMT-06:00) Easter Island’,
‘America/Chicago’ => ‘(GMT-06:00) Central Time (US & Canada)’,
‘America/New_York’ => ‘(GMT-05:00) Eastern Time (US & Canada)’,
‘America/Havana’ => ‘(GMT-05:00) Cuba’,
‘America/Bogota’ => ‘(GMT-05:00) Bogota, Lima, Quito, Rio Branco’,
‘America/Caracas’ => ‘(GMT-04:30) Caracas’,
‘America/Santiago’ => ‘(GMT-04:00) Santiago’,
‘America/La_Paz’ => ‘(GMT-04:00) La Paz’,
‘Atlantic/Stanley’ => ‘(GMT-04:00) Faukland Islands’,
‘America/Campo_Grande’ => ‘(GMT-04:00) Brazil’,
‘America/Goose_Bay’ => ‘(GMT-04:00) Atlantic Time (Goose Bay)’,
‘America/Glace_Bay’ => ‘(GMT-04:00) Atlantic Time (Canada)’,
‘America/St_Johns’ => ‘(GMT-03:30) Newfoundland’,
‘America/Araguaina’ => ‘(GMT-03:00) UTC-3′,
‘America/Montevideo’ => ‘(GMT-03:00) Montevideo’,
‘America/Miquelon’ => ‘(GMT-03:00) Miquelon, St. Pierre’,
‘America/Godthab’ => ‘(GMT-03:00) Greenland’,
‘America/Argentina/Buenos_Aires’ => ‘(GMT-03:00) Buenos Aires’,
‘America/Sao_Paulo’ => ‘(GMT-03:00) Brasilia’,
‘America/Noronha’ => ‘(GMT-02:00) Mid-Atlantic’,
‘Atlantic/Cape_Verde’ => ‘(GMT-01:00) Cape Verde Is.’,
‘Atlantic/Azores’ => ‘(GMT-01:00) Azores’,
‘Europe/Belfast’ => ‘(GMT) Greenwich Mean Time : Belfast’,
‘Europe/Dublin’ => ‘(GMT) Greenwich Mean Time : Dublin’,
‘Europe/Lisbon’ => ‘(GMT) Greenwich Mean Time : Lisbon’,
‘Europe/London’ => ‘(GMT) Greenwich Mean Time : London’,
‘Africa/Abidjan’ => ‘(GMT) Monrovia, Reykjavik’,
‘Europe/Amsterdam’ => ‘(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna’,
‘Europe/Belgrade’ => ‘(GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague’,
‘Europe/Brussels’ => ‘(GMT+01:00) Brussels, Copenhagen, Madrid, Paris’,
‘Africa/Algiers’ => ‘(GMT+01:00) West Central Africa’,
‘Africa/Windhoek’ => ‘(GMT+01:00) Windhoek’,
‘Asia/Beirut’ => ‘(GMT+02:00) Beirut’,
‘Africa/Cairo’ => ‘(GMT+02:00) Cairo’,
‘Asia/Gaza’ => ‘(GMT+02:00) Gaza’,
‘Africa/Blantyre’ => ‘(GMT+02:00) Harare, Pretoria’,
‘Asia/Jerusalem’ => ‘(GMT+02:00) Jerusalem’,
‘Europe/Minsk’ => ‘(GMT+02:00) Minsk’,
‘Asia/Damascus’ => ‘(GMT+02:00) Syria’,
‘Europe/Moscow’ => ‘(GMT+03:00) Moscow, St. Petersburg, Volgograd’,
‘Africa/Addis_Ababa’ => ‘(GMT+03:00) Nairobi’,
‘Asia/Tehran’ => ‘(GMT+03:30) Tehran’,
‘Asia/Dubai’ => ‘(GMT+04:00) Abu Dhabi, Muscat’,
‘Asia/Yerevan’ => ‘(GMT+04:00) Yerevan’,
‘Asia/Kabul’ => ‘(GMT+04:30) Kabul’,
‘Asia/Yekaterinburg’ => ‘(GMT+05:00) Ekaterinburg’,
‘Asia/Tashkent’ => ‘(GMT+05:00) Tashkent’,
‘Asia/Kolkata’ => ‘(GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi’,
‘Asia/Katmandu’ => ‘(GMT+05:45) Kathmandu’,
‘Asia/Dhaka’ => ‘(GMT+06:00) Astana, Dhaka’,
‘Asia/Novosibirsk’ => ‘(GMT+06:00) Novosibirsk’,
‘Asia/Rangoon’ => ‘(GMT+06:30) Yangon (Rangoon)’,
‘Asia/Bangkok’ => ‘(GMT+07:00) Bangkok, Hanoi, Jakarta’,
‘Asia/Krasnoyarsk’ => ‘(GMT+07:00) Krasnoyarsk’,
‘Asia/Hong_Kong’ => ‘(GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi’,
‘Asia/Irkutsk’ => ‘(GMT+08:00) Irkutsk, Ulaan Bataar’,
‘Australia/Perth’ => ‘(GMT+08:00) Perth’,
‘Australia/Eucla’ => ‘(GMT+08:45) Eucla’,
‘Asia/Tokyo’ => ‘(GMT+09:00) Osaka, Sapporo, Tokyo’,
‘Asia/Seoul’ => ‘(GMT+09:00) Seoul’,
‘Asia/Yakutsk’ => ‘(GMT+09:00) Yakutsk’,
‘Australia/Adelaide’ => ‘(GMT+09:30) Adelaide’,
‘Australia/Darwin’ => ‘(GMT+09:30) Darwin’,
‘Australia/Brisbane’ => ‘(GMT+10:00) Brisbane’,
‘Australia/Hobart’ => ‘(GMT+10:00) Hobart’,
‘Asia/Vladivostok’ => ‘(GMT+10:00) Vladivostok’,
‘Australia/Lord_Howe’ => ‘(GMT+10:30) Lord Howe Island’,
‘Etc/GMT-11′ => ‘(GMT+11:00) Solomon Is., New Caledonia’,
‘Asia/Magadan’ => ‘(GMT+11:00) Magadan’,
‘Pacific/Norfolk’ => ‘(GMT+11:30) Norfolk Island’,
‘Asia/Anadyr’ => ‘(GMT+12:00) Anadyr, Kamchatka’,
‘Pacific/Auckland’ => ‘(GMT+12:00) Auckland, Wellington’,
‘Etc/GMT-12′ => ‘(GMT+12:00) Fiji, Kamchatka, Marshall Is.’,
‘Pacific/Chatham’ => ‘(GMT+12:45) Chatham Islands’,
‘Pacific/Tongatapu’ => ‘(GMT+13:00) Nuku Alofa’,
‘Pacific/Kiritimati’ => ‘(GMT+14:00) Kiritimati’
);
#15 by Andrew Szczepanski at January 20th, 2011
This helped me out a ton, as well. For that I’ll pass it on – here’s my YAML contribution:
TimeZone:
pacific/midway:
olson: Pacific/Midway
text: Midway Island, Samoa
america/adak:
olson: America/Adak
text: Hawaii-Aleutian
etc/gmt+10:
olson: Etc/GMT+10
text: Hawaii
pacific/marquesas:
olson: Pacific/Marquesas
text: Marquesas Islands
pacific/gambier:
olson: Pacific/Gambier
text: Gambier Islands
america/anchorage:
olson: America/Anchorage
text: Alaska
america/ensenada:
olson: America/Ensenada
text: Tijuana, Baja California
etc/gmt+8:
olson: Etc/GMT+8
text: Pitcairn Islands
america/los_angeles:
olson: America/Los_Angeles
text: Pacific Time (US & Canada)
america/denver:
olson: America/Denver
text: Mountain Time (US & Canada)
america/chihuahua:
olson: America/Chihuahua
text: Chihuahua, La Paz, Mazatlan
america/dawson_creek:
olson: America/Dawson_Creek
text: Arizona
america/belize:
olson: America/Belize
text: Saskatchewan, Central America
america/cancun:
olson: America/Cancun
text: Guadalajara, Mexico City, Monterrey
chile/easterisland:
olson: Chile/EasterIsland
text: Easter Island
america/chicago:
olson: America/Chicago
text: Central Time (US & Canada)
america/new_york:
olson: America/New_York
text: Eastern Time (US & Canada)
america/havana:
olson: America/Havana
text: Cuba
america/bogota:
olson: America/Bogota
text: Bogota, Lima, Quito, Rio Branco
america/caracas:
olson: America/Caracas
text: Caracas
america/santiago:
olson: America/Santiago
text: Santiago
america/la_paz:
olson: America/La_Paz
text: La Paz
atlantic/stanley:
olson: Atlantic/Stanley
text: Faukland Islands
america/campo_grande:
olson: America/Campo_Grande
text: Brazil
america/goose_bay:
olson: America/Goose_Bay
text: Atlantic Time (Goose Bay)
america/glace_bay:
olson: America/Glace_Bay
text: Atlantic Time (Canada)
america/st_johns:
olson: America/St_Johns
text: Newfoundland
america/araguaina:
olson: America/Araguaina
text: UTC-3
america/montevideo:
olson: America/Montevideo
text: Montevideo
america/miquelon:
olson: America/Miquelon
text: Miquelon, St. Pierre
america/godthab:
olson: America/Godthab
text: Greenland
america/argentina/buenos_aires:
olson: America/Argentina/Buenos_Aires
text: Buenos Aires
america/sao_paulo:
olson: America/Sao_Paulo
text: Brasilia
america/noronha:
olson: America/Noronha
text: Mid-Atlantic
atlantic/cape_verde:
olson: Atlantic/Cape_Verde
text: Cape Verde Is.
atlantic/azores:
olson: Atlantic/Azores
text: Azores
europe/belfast:
olson: Europe/Belfast
text: Greenwich Mean Time : Belfast
europe/dublin:
olson: Europe/Dublin
text: Greenwich Mean Time : Dublin
europe/lisbon:
olson: Europe/Lisbon
text: Greenwich Mean Time : Lisbon
europe/london:
olson: Europe/London
text: Greenwich Mean Time : London
africa/abidjan:
olson: Africa/Abidjan
text: Monrovia, Reykjavik
europe/amsterdam:
olson: Europe/Amsterdam
text: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna
europe/belgrade:
olson: Europe/Belgrade
text: Belgrade, Bratislava, Budapest, Ljubljana, Prague
europe/brussels:
olson: Europe/Brussels
text: Brussels, Copenhagen, Madrid, Paris
africa/algiers:
olson: Africa/Algiers
text: West Central Africa
africa/windhoek:
olson: Africa/Windhoek
text: Windhoek
asia/beirut:
olson: Asia/Beirut
text: Beirut
africa/cairo:
olson: Africa/Cairo
text: Cairo
asia/gaza:
olson: Asia/Gaza
text: Gaza
africa/blantyre:
olson: Africa/Blantyre
text: Harare, Pretoria
asia/jerusalem:
olson: Asia/Jerusalem
text: Jerusalem
europe/minsk:
olson: Europe/Minsk
text: Minsk
asia/damascus:
olson: Asia/Damascus
text: Syria
europe/moscow:
olson: Europe/Moscow
text: Moscow, St. Petersburg, Volgograd
africa/addis_ababa:
olson: Africa/Addis_Ababa
text: Nairobi
asia/tehran:
olson: Asia/Tehran
text: Tehran
asia/dubai:
olson: Asia/Dubai
text: Abu Dhabi, Muscat
asia/yerevan:
olson: Asia/Yerevan
text: Yerevan
asia/kabul:
olson: Asia/Kabul
text: Kabul
asia/yekaterinburg:
olson: Asia/Yekaterinburg
text: Ekaterinburg
asia/tashkent:
olson: Asia/Tashkent
text: Tashkent
asia/kolkata:
olson: Asia/Kolkata
text: Chennai, Kolkata, Mumbai, New Delhi
asia/katmandu:
olson: Asia/Katmandu
text: Kathmandu
asia/dhaka:
olson: Asia/Dhaka
text: Astana, Dhaka
asia/novosibirsk:
olson: Asia/Novosibirsk
text: Novosibirsk
asia/rangoon:
olson: Asia/Rangoon
text: Yangon (Rangoon)
asia/bangkok:
olson: Asia/Bangkok
text: Bangkok, Hanoi, Jakarta
asia/krasnoyarsk:
olson: Asia/Krasnoyarsk
text: Krasnoyarsk
asia/hong_kong:
olson: Asia/Hong_Kong
text: Beijing, Chongqing, Hong Kong, Urumqi
asia/irkutsk:
olson: Asia/Irkutsk
text: Irkutsk, Ulaan Bataar
australia/perth:
olson: Australia/Perth
text: Perth
australia/eucla:
olson: Australia/Eucla
text: Eucla
asia/tokyo:
olson: Asia/Tokyo
text: Osaka, Sapporo, Tokyo
asia/seoul:
olson: Asia/Seoul
text: Seoul
asia/yakutsk:
olson: Asia/Yakutsk
text: Yakutsk
australia/adelaide:
olson: Australia/Adelaide
text: Adelaide
australia/darwin:
olson: Australia/Darwin
text: Darwin
australia/brisbane:
olson: Australia/Brisbane
text: Brisbane
australia/hobart:
olson: Australia/Hobart
text: Hobart
asia/vladivostok:
olson: Asia/Vladivostok
text: Vladivostok
australia/lord_howe:
olson: Australia/Lord_Howe
text: Lord Howe Island
etc/gmt-11:
olson: Etc/GMT-11
text: Solomon Is., New Caledonia
asia/magadan:
olson: Asia/Magadan
text: Magadan
pacific/norfolk:
olson: Pacific/Norfolk
text: Norfolk Island
asia/anadyr:
olson: Asia/Anadyr
text: Anadyr, Kamchatka
pacific/auckland:
olson: Pacific/Auckland
text: Auckland, Wellington
etc/gmt-12:
olson: Etc/GMT-12
text: Fiji, Kamchatka, Marshall Is.
pacific/chatham:
olson: Pacific/Chatham
text: Chatham Islands
pacific/tongatapu:
olson: Pacific/Tongatapu
text: Nuku’alofa
pacific/kiritimati:
olson: Pacific/Kiritimati
text: Kiritimati
#16 by Andrew Szczepanski at January 20th, 2011
Sorry, removed the GMT offsets from that, which isn’t good for usability. Updated it:
TimeZone:
pacific/midway:
olson: Pacific/Midway
text: (GMT-11:00) Midway Island, Samoa
america/adak:
olson: America/Adak
text: (GMT-10:00) Hawaii-Aleutian
etc/gmt+10:
olson: Etc/GMT+10
text: (GMT-10:00) Hawaii
pacific/marquesas:
olson: Pacific/Marquesas
text: (GMT-09:30) Marquesas Islands
pacific/gambier:
olson: Pacific/Gambier
text: (GMT-09:00) Gambier Islands
america/anchorage:
olson: America/Anchorage
text: (GMT-09:00) Alaska
america/ensenada:
olson: America/Ensenada
text: (GMT-08:00) Tijuana, Baja California
etc/gmt+8:
olson: Etc/GMT+8
text: (GMT-08:00) Pitcairn Islands
america/los_angeles:
olson: America/Los_Angeles
text: (GMT-08:00) Pacific Time (US & Canada)
america/denver:
olson: America/Denver
text: (GMT-07:00) Mountain Time (US & Canada)
america/chihuahua:
olson: America/Chihuahua
text: (GMT-07:00) Chihuahua, La Paz, Mazatlan
america/dawson_creek:
olson: America/Dawson_Creek
text: (GMT-07:00) Arizona
america/belize:
olson: America/Belize
text: (GMT-06:00) Saskatchewan, Central America
america/cancun:
olson: America/Cancun
text: (GMT-06:00) Guadalajara, Mexico City, Monterrey
chile/easterisland:
olson: Chile/EasterIsland
text: (GMT-06:00) Easter Island
america/chicago:
olson: America/Chicago
text: (GMT-06:00) Central Time (US & Canada)
america/new_york:
olson: America/New_York
text: (GMT-05:00) Eastern Time (US & Canada)
america/havana:
olson: America/Havana
text: (GMT-05:00) Cuba
america/bogota:
olson: America/Bogota
text: (GMT-05:00) Bogota, Lima, Quito, Rio Branco
america/caracas:
olson: America/Caracas
text: (GMT-04:30) Caracas
america/santiago:
olson: America/Santiago
text: (GMT-04:00) Santiago
america/la_paz:
olson: America/La_Paz
text: (GMT-04:00) La Paz
atlantic/stanley:
olson: Atlantic/Stanley
text: (GMT-04:00) Faukland Islands
america/campo_grande:
olson: America/Campo_Grande
text: (GMT-04:00) Brazil
america/goose_bay:
olson: America/Goose_Bay
text: (GMT-04:00) Atlantic Time (Goose Bay)
america/glace_bay:
olson: America/Glace_Bay
text: (GMT-04:00) Atlantic Time (Canada)
america/st_johns:
olson: America/St_Johns
text: (GMT-03:30) Newfoundland
america/araguaina:
olson: America/Araguaina
text: (GMT-03:00) UTC-3
america/montevideo:
olson: America/Montevideo
text: (GMT-03:00) Montevideo
america/miquelon:
olson: America/Miquelon
text: (GMT-03:00) Miquelon, St. Pierre
america/godthab:
olson: America/Godthab
text: (GMT-03:00) Greenland
america/argentina/buenos_aires:
olson: America/Argentina/Buenos_Aires
text: (GMT-03:00) Buenos Aires
america/sao_paulo:
olson: America/Sao_Paulo
text: (GMT-03:00) Brasilia
america/noronha:
olson: America/Noronha
text: (GMT-02:00) Mid-Atlantic
atlantic/cape_verde:
olson: Atlantic/Cape_Verde
text: (GMT-01:00) Cape Verde Is.
atlantic/azores:
olson: Atlantic/Azores
text: (GMT-01:00) Azores
europe/belfast:
olson: Europe/Belfast
text: (GMT) Greenwich Mean Time : Belfast
europe/dublin:
olson: Europe/Dublin
text: (GMT) Greenwich Mean Time : Dublin
europe/lisbon:
olson: Europe/Lisbon
text: (GMT) Greenwich Mean Time : Lisbon
europe/london:
olson: Europe/London
text: (GMT) Greenwich Mean Time : London
africa/abidjan:
olson: Africa/Abidjan
text: (GMT) Monrovia, Reykjavik
europe/amsterdam:
olson: Europe/Amsterdam
text: (GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna
europe/belgrade:
olson: Europe/Belgrade
text: (GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague
europe/brussels:
olson: Europe/Brussels
text: (GMT+01:00) Brussels, Copenhagen, Madrid, Paris
africa/algiers:
olson: Africa/Algiers
text: (GMT+01:00) West Central Africa
africa/windhoek:
olson: Africa/Windhoek
text: (GMT+01:00) Windhoek
asia/beirut:
olson: Asia/Beirut
text: (GMT+02:00) Beirut
africa/cairo:
olson: Africa/Cairo
text: (GMT+02:00) Cairo
asia/gaza:
olson: Asia/Gaza
text: (GMT+02:00) Gaza
africa/blantyre:
olson: Africa/Blantyre
text: (GMT+02:00) Harare, Pretoria
asia/jerusalem:
olson: Asia/Jerusalem
text: (GMT+02:00) Jerusalem
europe/minsk:
olson: Europe/Minsk
text: (GMT+02:00) Minsk
asia/damascus:
olson: Asia/Damascus
text: (GMT+02:00) Syria
europe/moscow:
olson: Europe/Moscow
text: (GMT+03:00) Moscow, St. Petersburg, Volgograd
africa/addis_ababa:
olson: Africa/Addis_Ababa
text: (GMT+03:00) Nairobi
asia/tehran:
olson: Asia/Tehran
text: (GMT+03:30) Tehran
asia/dubai:
olson: Asia/Dubai
text: (GMT+04:00) Abu Dhabi, Muscat
asia/yerevan:
olson: Asia/Yerevan
text: (GMT+04:00) Yerevan
asia/kabul:
olson: Asia/Kabul
text: (GMT+04:30) Kabul
asia/yekaterinburg:
olson: Asia/Yekaterinburg
text: (GMT+05:00) Ekaterinburg
asia/tashkent:
olson: Asia/Tashkent
text: (GMT+05:00) Tashkent
asia/kolkata:
olson: Asia/Kolkata
text: (GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi
asia/katmandu:
olson: Asia/Katmandu
text: (GMT+05:45) Kathmandu
asia/dhaka:
olson: Asia/Dhaka
text: (GMT+06:00) Astana, Dhaka
asia/novosibirsk:
olson: Asia/Novosibirsk
text: (GMT+06:00) Novosibirsk
asia/rangoon:
olson: Asia/Rangoon
text: text: (GMT+06:30) Yangon (Rangoon)
asia/bangkok:
olson: Asia/Bangkok
(GMT+07:00) Bangkok, Hanoi, Jakarta
asia/krasnoyarsk:
olson: Asia/Krasnoyarsk
text: (GMT+07:00) Krasnoyarsk
asia/hong_kong:
olson: Asia/Hong_Kong
text: (GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi
asia/irkutsk:
olson: Asia/Irkutsk
text: (GMT+08:00) Irkutsk, Ulaan Bataar
australia/perth:
olson: Australia/Perth
text: (GMT+08:00) Perth
australia/eucla:
olson: Australia/Eucla
text: (GMT+08:45) Eucla
asia/tokyo:
olson: Asia/Tokyo
text: (GMT+09:00) Osaka, Sapporo, Tokyo
asia/seoul:
olson: Asia/Seoul
text: (GMT+09:00) Seoul
asia/yakutsk:
olson: Asia/Yakutsk
text: (GMT+09:00) Yakutsk
australia/adelaide:
olson: Australia/Adelaide
text: (GMT+09:30) Adelaide
australia/darwin:
olson: Australia/Darwin
text: (GMT+09:30) Darwin
australia/brisbane:
olson: Australia/Brisbane
text: (GMT+10:00) Brisbane
australia/hobart:
olson: Australia/Hobart
text: (GMT+10:00) Hobart
asia/vladivostok:
olson: Asia/Vladivostok
text: (GMT+10:00) Vladivostok
australia/lord_howe:
olson: Australia/Lord_Howe
text: (GMT+10:30) Lord Howe Island
etc/gmt-11:
olson: Etc/GMT-11
text: (GMT+11:00) Solomon Is., New Caledonia
asia/magadan:
olson: Asia/Magadan
text: (GMT+11:00) Magadan
pacific/norfolk:
olson: Pacific/Norfolk
text: (GMT+11:30) Norfolk Island
asia/anadyr:
olson: Asia/Anadyr
text: (GMT+12:00) Anadyr, Kamchatka
pacific/auckland:
olson: Pacific/Auckland
text: (GMT+12:00) Auckland, Wellington
etc/gmt-12:
olson: Etc/GMT-12
text: (GMT+12:00) Fiji, Kamchatka, Marshall Is.
pacific/chatham:
olson: Pacific/Chatham
text: (GMT+12:45) Chatham Islands
pacific/tongatapu:
olson: Pacific/Tongatapu
text: (GMT+13:00) Nuku’alofa
pacific/kiritimati:
olson: Pacific/Kiritimati
text: (GMT+14:00) Kiritimati
#17 by Rennex at October 13th, 2011
I do not approve of this list. First of all, timezones should relate to UTC these days, not GMT. And I’m from Helsinki (UTC+2 with EU DST rules), but the only +2 zones I see are in the Middle East or Eastern Europe, and I can’t trust them to change DST at the correct time.
Proper timezone selection lists have typically included Helsinki, Riga, Tallinn, Athens in my zone – your list has none of them. How did you choose which names to keep and which to drop? I think capital cities should’ve been kept…
#18 by Jonathan Matthews at December 15th, 2011
I think some values in the list may be incorrect. Looking at the following it seems the Olson values have the +/- reversed:
(GMT-10:00) Hawaii
(GMT-08:00) Pitcairn Islands
(GMT+11:00) Solomon Is., New Caledonia
(GMT+12:00) Fiji, Kamchatka, Marshall Is.
#19 by Cyril Mazur at June 18th, 2012
On my system, PHP 5.3.6 doesn’t recognise these timezone identifiers as correct:
Etc/GMT+10 (I replaced by Pacific/Honolulu)
America/Ensenada (I replaced by America/Tijuana)
Etc/GMT+8 (I replaced by Pacific/Pitcairn)
Chile/EasterIsland (I replaced by Pacific/Easter)
Europe/Belfast (Belfast belongs to the UK and is ruled by the same timezone as London, so I deleted it)
Asia/Katmandu (mispelt, replaced by Asia/Kathmandu)
Etc/GMT-11 (replaced by Pacific/Noumea)
Etc/GMT-12 (replaced by Pacific/Fiji)
Cool list otherwise, I will use it on my website (with my personal replacements)
#20 by MAHESWARAN at August 22nd, 2012
THANKS FOR THIS VALUABLE INFO