<-- try
catch(e) { } // function not found - omit header line -->NW F - Internationalization (I18n) & Printing
Time Zone Code Standard
Proposal
Introduction
We need a standard to code all time zones in the world with unique identifiers. A time zone is not only given by the offset in hours (and minutes) compared to UTC, but also by the rules for daylight saving time that apply to a certain region.
We also need a standard to designate and qualify a time point. For this the same designator shall be used as for time zone codes, where a "D" is added if daylight saving time applies.
This proposal introduces notations for both time zone codes and time descriptors in a generic way. That is, it applies to all existing time zones as well as for time zones that will be built in the future or did exist in the past (for example by daylight saving time rule changes).
The Proposal
Time Zone Name
There already exists a convention to refer to geographical base time zones by their time offset to UTC. Basing on this convention we propose to code the time zones in the following manner: time_zone_identifier = geographical_time_zone_identifier
[daylight_saving_time_rule]
The daylight saving time rule is given by the regional code that corresponds to the regional authority who defines the rule that applies (usually by law). daylight_saving_time_rule = country_(or_continent)_code_ISO
[ "_" regional_code
[ "_" variant] ]
The geographical time zone identifier is derived from the offset to UTC. Origin for UTC is the Zero Meridian going through Greenwich. Time zones where the sun rises earlier, have positive offsets to UTC and are marked with P (plus), time zones where the sun rises later, are marked with M (minus), followed by two digits for the hours and two digits for the minutes which specify the exact offset to UTC (without daylight saving time). geographical_time_zone_identifier = ("P" / "M") ("0"-"9")*4
The country (or continent) code is given by ISO standard and consists of two (if possible) or three capital letters. For each the regional code and the variant two letters are allowed. country_(or_continent)_code_ISO = ("A""Z")*2 / ("A""Z")*3 regional_code = ("A""Z")*2 variant = ("A""Z")*2
Time Descriptor
The time descriptor to designate a certain time point then is defined to be
- equal to the time zone identifier if no daylight saving time applies,
- equal to the time zone identifier followed by a "D" if daylight saving time applies.
That is, the time descriptor has the following form. time_descriptor = geographical_time_zone_identifier
[ daylight_saving_time_rule
[ daylight_saving_time_indicator ] ] daylight_saving_time_rule = country_(or_continent)_code_ISO
[ "_" regional_code
[ "" variant] ] geographical_time_zone_identifier = ("P" / "M") ("0""9")*4 country(or_continent)_code_ISO = ("A""Z")*2 / ("A""Z")*3 regional_code = ("A""Z")*2 variant = ("A"-"Z")*2 daylight_saving_time_indicator = "_D"
Example
The time zone code that applies to Germany is P0100EU, as it lies in geographic time zone UTC+1 and obeys the European daylight saving time rule.
The current date and time in Walldorf is 2005-10-13, 11:45 P0100EU_D.
Details and Explanation
In some of the time zones an offset applies to some regions that does not consist of entire hours. For example India does not have an offset of 5 hours to UTC, but 5 hours and 30 minutes, Nepal has an offset of 5 hours and 45 minutes. Some regions of Kiribati have an offset of 13 or 14 hours to UTC.
New Foundland, Canada lies in the time zone UTC-3:30. In our notation this is M0330.
Except for Europe, the daylight saving time rule of one country either is defined by the legislative of this country, or it follows the one of another country. That means except for the countries that follow the daylight saving time rule of Europe, the country code corresponding to the regional authority followed is used to identify a daylight saving time rule.
In some regions, the daylight saving time rule is more complex.
- Brazil sets its Summer time by decree every year. Some states / counties observe Summer time on a year to year basis. Here, the state code is used in addition to the country code of Brazil.
- In the USA, the daylight saving time rule is even more complex. The state of Arizona does not observe DST. However the Navajo Reservation (see USA map) does change to daylight saving time. The Hopi Reservation is within the Navajo Reservation and does not observe DST (as rest of the state).
The daylight saving time rule itself is not part of this proposal. The rule is defined by law in each country and can change on a yearly basis. The current status (2005) is given in the appendix for orientation. We give a generic rule how to refer to an existing (or future/past) daylight saving time rule.
Examples
Some more examples for time zone identifiers:
| Country | Time Zone Code | Remark | Traditional Name |
|---|---|---|---|
| Ireland | P0000EU | (geo base time zone UTC, European daylight saving time) | GMT, WET, in summer IST |
| Germany | P0100EU | (geo base time zone UTC+1, European daylight saving time rule) | CET, MET |
| Israel | P0200IL | (geo time zone UTC+2, Israelian daylight saving time) | IST |
| India | P0530 | (geo time zone UTC+5:30, no daylight saving time) | |
| China | P0800 | (geo time zone UTC+8:00, no daylight saving time) | CST |
| Australia - New South Wales | P0930AU | (geo time zone UTC+9:30, Australian daylight saving time rule) | CAST, CST |
| Australia - Norfolk Island | P1130 | (geo time zone UTC+11:30, no daylight saving time rule) | NFT |
| New Zealand - Chatham Island | P1245NZ | (geo time zone UTC+12:45, New Zealandian daylight saving time rule) | CHAST |
| Baker Island | M1200 | (geo time zone UTC-12:00, no daylight saving time) | IDLW |
| United States - Colorado | M0700US | (geo time zone UTC-7:00, United States rule for daylight saving time) | MST |
| United States - Arizona | M0700 | (geo time zone UTC-7:00, no daylight saving time) | MST |
| United States - Arizona - Navajo Reservation | M0700US | (geo base time zone UTC+7:00, daylight saving time rule of the US) in case the Navajo reservation changes its daylight saving time rule from following US to something else, M0700US_AZ_NV would be introduced |
MST |
| United States - Alabama | M0600US | (geo time zone UTC-6:00, United States rule for daylight saving time) | CST |
| Cuba | M0500CU | (geo time zone UTC-5:00, Cuba daylight saving time rule) | AST, in summer CST |
| Canada, New Foundland | M0330CA | (geo time zone UTC-3:30, Canadian daylight saving time rule) | NFT, NST |
| Greenland (east) | M0100GL | (geo time zone UTC-1:00, Greenlandian daylight saving time rule) | EGT |
Appendix
Suggested DST rule codes.
Note: The rules for DST start and end are as known in 2005, and may change any time. Also the assignment of country or regions to rules may change. The suggested names are based on the ISO language code of the country/continent they originally come from.
| DST Rule | Used in Country/Region in 2005 | Start of DST rule in 2005 | End of DST rule in 2005 |
|---|---|---|---|
| EU | Albania Andorra Austria Belgium Bosnia and Herzogowina Bulgaria Channel Islands Croatia Cyprus Czech Republic Denmark Denmark - Faroe Islands Estonia Finland France Germany Greece Hungary Isle of Man Ireland Italy Latvia Liechtenstein Lithuania Luxembourg Macedonia Malta Moldova Monaco Montenegro Netherlands Norway Poland Portugal Portugal - Madeira Portugal - Azores Romania San Marino Serbia Slovak Republic Slovenia Spain Spain - Canary Islands Sweden Switzerland Turkey U.K. - England U.K. - Gibraltar U.K. - Northern Ireland U.K. - Scotland U.K. - Wales Ukraine Vatican City |
Last Sunday in March, at 01:00 UTC | Last Sunday in October, at 01:00 UTC |
| US | Bahamas Bermuda Canada Saint Pierre and Miquelon Turks and Caicos Islands USA |
Second Sunday in March, at 02:00 local time | First Sunday in November, at 02:00 local daylight saving time |
| AR | Argentina | First Sunday in October, at 0:00 local time | Third Sunday in March, at 0:00 local daylight saving time |
| AM | Armenia | last Sunday in March , at 02:00 local time | last Sunday in October, at 03:00 local daylight saving time |
| AZ | Azerbaijan | last Sunday in March 0:00 UTC | last Sunday in October 0:00 UTC |
| BY | Belarus | last Sunday in March 0:00 UTC | last Sunday in October 0:00 UTC |
| BR | Brazil (part) | First Sunday in November, at 0:00 local time | Third Sunday in February, at 0:00 local daylight saving time |
| CU | Cuba | Third Sunday in March, at 00:00 local time | Last Sunday October, at 01:00 local daylight saving time |
| EG | Egypt | Last Friday in April, at 0:00 local time | Last Friday in August, at 0:00 local daylight saving time |
| FK | U.K. Falkland Islands (Malvinas) | First Sunday September, at 02:00 local time | Third Sunday April, at 02:00 local daylight saving time |
| IL_GA | Gaza Strip | Last Friday in March, at 0:00 local time | First Saturday in October, at 02:00 local daylight saving time |
| GL | Denmark - Greenland | Saturday before last Sunday in March, at 01:00 UTC | Saturday before last Sunday in October, at 01:00 UTC |
| IR | Iran | the first day of Farvardin, at 0:00 local time | the first day of Mehr, at 0:00 local daylight saving time |
| IL | Israel | Last Friday in March, at 02:00 local time | first Sunday in October, at 02:00 local daylight saving time |
| JO | Jordan | Last Friday in March, at 0:00 local time | Last Friday in October, at 01:00 local daylight saving time |
| LB | Lebanon | Last Sunday in March 22:00 UTC | Last Sunday in October 21:00 UTC |
| MU | Mauritius | Last Sunday in October, at 2:00 local time | Last Sunday in March, at 2:00 local daylight saving time |
| MX | Mexico | First Sunday in April, at 02:00 local time | Last Sunday in October, at 02:00 local daylight saving time |
| MA | Morocco | First Sunday in June, at 0:00 local time | Last Sunday in September, at 0:00 local daylight saving time |
| NA | Namibia | First Sunday in September, at 02:00 local time | First Sunday in April, at 02:00 local daylight saving time |
| PK | Pakistan | First of June, at 0:00 local time | First of September, at 0:00 local daylight saving time |
| PS | Palestinian Territoris | Last Friday in March, at 0:00 local time | First Saturday in October, at 2:00 local daylight saving time |
| PY | Paraguay | Third Sunday in October, at 0:00 local time | Second Sunday in March, at 0:00 local daylight saving time |
| RU | Russia | Last Sunday in March 23:00 UTC | Last Sunday in October 23:00 UTC |
| SY | Syria | First Friday in April, at 0:00 local time | First of October, at 0:00 local daylight saving time |
| TN | Tunisia | Last Sunday in March, at 2:00 local time | Last Sunday in October, at 3:00 local daylight saving time |
| UY | Uruguay | First Sunday in October, at 2:00 local time | Second Sunday in March, at 2:00 local daylight saving time |
| EH | Western Sahara | First Sunday in June, at 0:00 local time | Last Sunday in September, at 0:00 local daylight saving time |
| AUS | Adelaide - South Australia Australia - Australian Captial Territory Australia - Lord Howe Island Australia - New South Wales Australia - South Australia Australia - Tasmania Australia - Victoria |
First Sunday in October, at 02:00 local time | First Sunday in April, at 03:00 local daylight saving time |
| CL | Chile Chile - Easter Island Antarctica - O'Higgins Station (Chile) Antarctica - Palmer Station (USA) |
Second Sunday of October - at 04:00 UTC | Last Sunday of March - at 04:00 UTC |
| NZ | New Zealand New Zealand - Chatham Island Antarctica - Amundsen-Scott (South Pole) Antarctica - McMurdo Station (USA) Antarctica - Scott Station (N.Z.) |
Last Sunday in September, at 2:00pm UTC | First Sunday in April, at 3:00pm UTC |
| DZ | Algeria | at last 1980, last Friday in October, at 2:00 local time | Last Friday in April, at 0:00 local daylight saving time |
| BZ | Belize | at last 1982, third Saturday in December, at 0:00 local time | Second Saturday in February, at 0:00 local daylight saving time |
| TD | Chad | at last 1979, Second Sunday in October, at 0:00 local time | Second Saturday in March, at 0:00 local daylight saving time |
| CN | China | at last 1991, Second Sunday in April, at 0:00 local time | Second Sunday in September , at 0:00 local daylight saving time |
| CO | Colombia | at last 1992, first Sunday in May, at 0:00 local time | First Sunday in April, at 0:00 local daylight saving time |
| CK | Cook Islands | at last 1990, last Sunday in October, at 0:00 local time | First Sunday in March, at 0:00 local daylight saving time |
| CR | Costa Rica | at last 1992, third Saturday in January, at 0:00 local time | Third Sunday in March, at 0:00 local daylight saving time |
| SV | El Salvador | at last 1988, first Sunday in May, at 0:00 local time | Last Sunday in September, at 0:00 local daylight saving time |
| FJ | Fiji | at last 2000, first Sunday in November, at 2:00 local time | Last Sunday in February, at 3:00 local daylight saving time |
| GE | Georgia | at last 2004 last Sunday in March 0:00 local time | last Sunday in October 03:00 local daylight saving time |
| GT | Guatemala | at last 2006, last Sunday in April, at 0:00 local time | Last Sunday in September, at 0:00 local daylight saving time |
| HT | Haiti | at last 2006, first of April, at 0:00 local time | Last Saturday in October, at 0:00 local daylight saving time |
| HN | Honduras | at last 2006, first Sunday in May, at 0:00 local time | First Sunday in August, at 0:00 local daylight saving time |
| IQ | Iraq | at last 2007, 1st of April, at 03:00 local time | 1st of October, at 04:00 local daylight saving time |
| KG | Kyrgyzstan | at last 2005, last Sunday in March, at 2:30 local time | Second Friday in August, at 0:00 local daylight saving time |
| LY | Libya | at last 1997, first Friday in April, at 0:00 local time | First Saturday in October, at 0:00 local daylight saving time |
| MN | Mongolia | at last 2006, last Saturday in March, at 2:00 local time | Last Saturday in September, at 2:00 local daylight saving time |
| NC | New Caledonia | at last 1996, first Sunday in December, at 2:00 local time | First Sunday in March, at 3:00 local daylight saving time |
| NI | Nicaragua | at last 2006, last Sunday in April, at 2:00 local time | First Sunday in October, at 1:00 local daylight saving time |
| PE | Peru | at last 1994, first of January, at 0:00 local time | First of April, at 0:00 local daylight saving time |
| KR | South Korea | at last 1988, Second Sunday in May, at 0:00 local time | Second Sunday in October, at 0:00 local daylight saving time |
| SD | Sudan | at last 1985, last Sunday in April, at 0:00 local time | Second Tuesday in October, at 0:00 local daylight saving time |
| TW | Taiwan | at last 1980, last Monday in June, at 0:00 local time | Last Tuesday in September, at 0:00 local daylight saving time |
| TJ | Tajikistan | at last 1991, last Sunday in March, at 2:00 local time | Second Monday in September, at 3:00 local daylight saving time |
| TO | Tonga | at last 2001, first Sunday in November, at 2:00 local time | Last Sunday in January, at 2:00 local daylight saving time |
| TM | Turkmenistan | at last 1991, last Sunday in March, at 2:00 local time | Last Sunday in September, at 3:00 local daylight saving time |
| UZ | Uzbekistan | at last 1991, last Sunday in March, at 2:00 local time | Last Sunday in September, at 3:00 local daylight saving time |
| VU | Vanuatu | at last 1992, last Sunday in October, at 0:00 local time | 4th Sunday in January, at 0:00 local daylight saving time |
Time Zone Codes
| Time Zone Codes | Traditional Names | Countries |
|---|---|---|
| P0000EU | GMT,WET | Channel Island, Denmark-Faroe Islands, Isle of Man, Portugal, Portugal-Madeira, Spain-Canary Islands, U.K.-England, U.K.-Northern Ireland, U.K.-Scotland, U.K.-Wales |
| P0100EU | CET | Albania, Andorra, Austria, Belgium, Bosnia and Herzogowina, Croatia, Czech Republic, Denmark, France, Hungary, Italy, Liechtenstein, Luxembourg, Macedonia, Malta, Monaco, Montenegro, Netherlands, Norway, Poland, Portugal-Azores, San Marino, Serbia, Slovak Republic, Slovenia, Spain, Sweden, Switzerland, U.K.-Gibraltar, Vatican City |
| P0200EU | EET | Bulgaria, Cyprus, Estonia, Finland, Greece, Latvia, Lithuania, Moldova, Romania, Turkey, Ukraine |
| M0300US | PMST | Saint Pierre and Miquelon |
| M0400US | AST | Bermuda |
| M0500US | EST | Bahamas, Canada, Turks and Caicos Islands, USA(part) |
| P0930AUS | CST | South Australia |
| P1000AUS | EST | Australian Capital Territory, Tasmania, Victoria |
| P1030AUS | LHST | Lord Howe Island |
| M0400CL | CLT | Chile |
| M0600CL | EAST | Easter Island |
| P1200NZ | NZST | New Zealand, Antarctica-Scott Station |
| P1245NZ | CHAST | New Zealand-Chatham Island |
| P0000MA | WT | Morocco |
| P0000EH | WT | Western Sahara |
| P0100NA | WAT | Namibia |
| P0100TN | CET | Tunisia |
| P0200BY | EET | Belarus |
| P0200EG | EET | Egypt |
| P0200IL_GA | EET | Gaza_Strip |
| P0200JO | EET | Jordan |
| P0200LB | EET | Lebanon |
| P0200PS | EET | Palestinian Territoris |
| P0200SY | EET | Syria |
| P0300RU | MSK | Russia |
| P0330IR | IRST | Iran |
| P0400AM | AMT | Armenia |
| P0400AZ | AZT | Azerbaijan |
| P0400MU | MUT | Mauritius |
| P0500PK | PKT | Pakistan |
| M0300AR | ART | Argentina |
| M0300BR | BRT | Brazil(part) |
| M0300GL | WGT | Greenland |
| M0300UY | UYT | Uruguay |
| M0400FK | FKT | Falkland Islands |
| M0400PY | PYT | Paraguay |
| M0500CU | CST | Cuba |
| M0600MX | CST | Mexico |
| P0100DZ | CET | Algeria |
| P0100TD | WAT | Chad |
| P0200LY | EET | Libya |
| P0300IQ | AST | Iraq |
| P0300SD | EAT | Sudan |
| P0400GE | GET | Georgia |
| P0500TJ | TJT | Tajikistan |
| P0500TM | TMT | Turkmenistan |
| P0500UZ | UZT | Uzbekistan |
| P0600KG | KGT | Kyrgyzstan |
| P0800CN | CST | China |
| P0800MN | ULAT | Mongolia |
| P0800TW | CST | Taiwan |
| P0900KR | KST | South Korea |
| P1100NC | NCT | New Caledonia |
| P1100VU | VUT | Vanuatu |
| P1200FJ | FJT | Fiji |
| P1300TO | TOT | Tonga |
| M0500CO | COT | Colombia |
| M0500HT | EST | Haiti |
| M0500PE | PET | Peru |
| M0600BZ | CST | Belize |
| M0600CR | CST | Costa Rica |
| M0600SV | CST | El Salvador |
| M0600GT | CST | Guatemala |
| M0600HN | CST | Honduras |
| M0600NI | CST | Nicaragua |
| M1000CK | CKT | Cook Islands |
| P0000 | GMT | Burkina Faso, Cote d'Ivoire, Ghana, Guinea Bissau, Gineau, Iceland, Liberia, Mali, Mauritania, Saint Helena, Sao Tome e Principe, Senegal, Sierra Leone, Togo |
| P0100 | WAT | Angola, Benin, Cameroon, Central African Republic, Republic of Congo, Congo (DRC), Equatorial Guinea, Gabon, Niger, Nigeria |
| P0200 | CAT, SAST | Botswana, Burundi, Lesotho, Malawi, Mozambique, Rwanda, South Africa, Swaziland, Zambia, Zimbabwe |
| P0300 | AST, EAT | Bahrain, Comoros, Djibouti, Eritrea, Ethiopia, Kenya, Kuwait, Madagascar, Mayotte, Qatar, Saudi Arabia, Somalia, Tanzania, Uganda, Yemen |
| P0400 | GST, RET, SCT | Oman, Reunion, Seychelles, United Arab Emirates |
| P0430 | AFT | Afghanistan |
| P0530 | IST | Sri Lanka |
| P0545 | NPT | Nepal |
| P0600 | BDT, BTT, AQTT | Bangladesh, Bhutan, Kazakhstan |
| P0630 | MMT | Myanmar |
| P0700 | ICT, CXT, WIT | Cambodia, Christmas Island, Indonesia West, Laos, Thailand, Vietnam |
| P0800 | BNT, HKT, CIT, MYT, PHT, SGT | Brunei, Hong Kong, Indonesia Central, Malaysia, Philippines, Singapore |
| P0900 | TLT, EIT, IST, KST, PWT | East Timor, Indonesia East, Japan, North Korea, Palau |
| P1000 | CHST, PGT | Guam, Northern Mariana Islands, Papua New Guinea |
| P1100 | PONT, SBT | Micronesia, Solomon Islands |
| P1200 | GILT, MHT, NRT, TVT, WFT | Kiribati, Marshall Islands, Nauru, Tuvalu, Wallis and Futuma |
| M0100 | CVT | Cape Verde |
| M0300 | GFT, SRT | French Guinea, Suriname |
| M0400 | AST, BOT | Anguilla, Antiqua and Barbuda, Aruba, Barbados, Bolivia, Bonaire, The British Virgin Islands, Curacao, Dominica, The Dominican Republic, Grenada, Guadeloupe, Guyana, Martinique, Montserrat, Netherlands Antilles, Saba, Saint Kitts and Nevis, Saint Vincent and the Grenadines, Saint Lucia, Saint Martin, Sint Maarten, Trinidad and Tobago, US Virgin Islands |
| M0430 | VET | Venezuela |
| M0500 | EST, ECT | Cayman Islands, Ecuador, Jamaica, Panama |
| M0900 | GAMT | French Polynesia |
| M1100 | SST, NUT, WST, TKT | American Samoa, Niue Island, Samoa, Tokelau |
Information collected from: WorldTimeZone, TimeAndDate, DaylightSavingTimes, TimeGenie, GreenWichMeanTime, TimeTemperature, SAP transaction stzbc<!-- try
catch(e) { } -->Responsible: Gundula Niemann, Markus Eble
NW F I18n, Hotline 63930, CSN Component: BC-I18
NW F Printing, CSN Component: BC-CCM-PRN<!-- try
catch(e) { } -->
Last modified: 2008/08/27 10:03:59 by d047777
File-Id: //bis/server/abap/docs/I18n/TimeZones/TimeZoneProposal.htm#6