timezone
The interface ITimeZoneProvider and ITimeZone are helpful to make timezone relevant time calculation.
File information
Classes
ITimeZoneProvider
class ITimeZoneProvider {
public:
static ITimeZone * GetTimeZone(const char * tzid, class IInstanceLog * const log);
};
Public functions
GetTimeZone
Returns the ITimeZone instance for the given timezone id. It it will be the first time that timezone instance is requested, ITimeZoneProvider
creates the instance and stores it to an internal list for later use. The instance also will be released automatically on application shutdown,
so there is no need to release it from within your app (what acutally is not possible).
Parameters
const char * tzid | One of the timezone ids (see below) |
IInstanceLog * const log | An IInstance log instance used for logging in case of an error. |
ITimeZone
class ITimeZone {
protected:
virtual ~ITimeZone() {}
public:
virtual const char * TimeZoneName();
virtual const char * UTCName();
virtual long64 UTCDiff();
virtual long64 DSTDiff();
virtual long64 ToLocalTime(long64 utcTime);
virtual long64 ToUTCTime(long64 localTime);
virtual long64 RemoveDST(long64 timeStamp);
virtual long64 AddDST(long64 timeStamp);
virtual bool IsDST(long64 timeStamp, bool isLocalTime = false);
virtual bool IsDST(ITimeZoneDSTRange * dstRange, long64 timeStamp, bool isLocalTime = false);
virtual ITimeZoneDSTRange * GetDSTRange(long64 rangeStartDate, long64 rangeEndDate);
};
Provides functionality for timezone handling. The idea of that interface is to provide some basic functions so that the application can make the necessary
calculations.
Public functions
TimeZoneName
Return value
Returns the name of the timezone which is the same as the TZ id used to get the timezone.
UTCName
Return value
Returns the utc name of the timezone, which actually is UTC + the time difference (e. G. "UTC+01:00").
UTCDiff
Return value
Returns the difference of the timezone to UTC in milliseconds.
DSTDiff
Return value
Returns the difference during active daylight saving time of the timezone to UTC in milliseconds. A value of 0 indicates, that the
timezone has not daylightsaving time.
ToLocalTime
Converts the given time stamp to the timezones local time. The function considers daylightsaving time.
Parameters
long64 utcTime | The timestamp in UTC to convert to local time. Make sure that the timestamp given is UTC, or the result will be wrong. |
ToUTCTime
Converts the given local time to UTC using the rules defined by the timezone. The function considers daylightsaving time.
Parameters
long64 localTime | The timestamp in the timezones local time to convert to UTC. Make sure that the timestamp given is realy local time for the timezone, or the result will be wrong. |
RemoveDST
Removes the daylightsa ving time from the given timestamp, if the timestamp is during active daylight saving time. If not, the return value will be the same as the value given.
Parameters
long64 timeStamp | The timestamp to remove the daylight saving time value. |
AddDST
Add the daylight saving time difference to the given timestamp, if the timestamp points to active daylight saving time. If not, the return value is the same asa the value given.
Parameters
long64 timeStamp | The timestamp to add the daylightsaving time difference. |
IsDST (overloaded)
Checks if the given timestamp is during daylightsaving time or not.
Parameters
long64 timeStamp | The timeStamp to check. |
bool isLocalTime | (Default false) If true, the given timestamp is in local time, else in UTC. |
IsDST (overloaded)
Checks if the given timestamp is during daylightsaving time or not. Becuase some timezones have a lot of daylightsaving time transitions, you can pass an ITimeZoneDSTRange instance which only provides a range of it. This can optimize the check if there is need to call it frequently.
Parameters
ITimeZoneDSTRange * dstRange | An ITimeZoneDSTRange instance to provide the time range for the checks. |
long64 timeStamp | The timeStamp to check. |
bool isLocalTime | (Default false) If true, the given timestamp is in local time, else in UTC. |
GetDSTRange
If there is need to check a lot of timestamps calling IsDST(), it can be better to make the check only in a specified timerange (e. G. the timezone for Europe/Berlin provides timezone
transitions back to 1900). So if the range of the minimum and maximum time to make a check is known, this can help to minimize the checks to be done. This function will create an
ITimeZoneDSTRange instance which must be given to the overloaded IsDST() version.
Parameters
long64 rangeStartDate | The start timestamp for the desired range. |
long64 rangeStartDate | The end timestamp for the desired range. |
Return value
The ITimeZoneDSTRange instance for the desired range. It must be released by the app when now longer used.
ITimeZoneDSTRange
class ITimeZoneDSTRange {
public:
ITimeZoneDSTRange() {};
virtual ~ITimeZoneDSTRange() {};
virtual class ITimeZone * TimeZone() = 0;
virtual long64 RangeStart() = 0;
virtual long64 RangeEnd() = 0;
};
Some timezones have a lot of daylightsaving time transitions. But when there is need to a lot of ITimeZone::IsDST() checks, it can be helpful to define a range of minimum
and maximum transition to make the checks. This can be done by the help of ITimeZoneDSTRange. To get a valid instance, use ITimeZone::GetDSTRange(). However, the instance
must be released by the application.
Public functions
TimeZone
Return value
Returns the instance of the ITimeZone instance the instance was created with. The daylightsaving time range is only valid for that timezone.
RangeStart
Return value
The end timestamp of the range.
RangeStart
Return value
Returns the end timestamp of the range.
Code Example
long64 now = ITime::TimeStampMilliseconds();
char tstr[21];
ITime::FormatTimeStampISO(tstr, sizeof(tstr), now);
printf("Current time UTC: %s\n", tstr);
ITimeZone * tzDE = ITimeZoneProvider::GetTimeZone(TZ_EUROPE_BERLIN, myLogInstance);
ITime::FormatTimeStampISO(tstr, sizeof(tstr), tzDE->ToLocalTime(now));
printf("Current time in Germany: %s\n", tstr);
// Output:
// Current time UTC: 2017-08-22T16:15:00
// Current time in Germany: 2017-08-22T18:15:00
Timezone IDs
The ITimeZone interface makes use of the tz database, provided by the underlying Linux OS. For each timezone exists an identifier. The list below
is a set of defines to use for that ids. The names of the defines are selfexplaining.
List of tz-ids used by the tz database
- TZ_AFRICA_ABIDJAN
- TZ_AFRICA_ACCRA
- TZ_AFRICA_ALGIERS
- TZ_AFRICA_BISSAU
- TZ_AFRICA_CAIRO
- TZ_AFRICA_CASABLANCA
- TZ_AFRICA_CEUTA
- TZ_AFRICA_EL_AAIUN
- TZ_AFRICA_JOHANNESBURG
- TZ_AFRICA_KHARTOUM
- TZ_AFRICA_LAGOS
- TZ_AFRICA_MAPUTO
- TZ_AFRICA_MONROVIA
- TZ_AFRICA_NAIROBI
- TZ_AFRICA_NDJAMENA
- TZ_AFRICA_TRIPOLI
- TZ_AFRICA_TUNIS
- TZ_AFRICA_WINDHOEK
- TZ_AMERICA_ADAK
- TZ_AMERICA_ANCHORAGE
- TZ_AMERICA_ARAGUAINA
- TZ_AMERICA_ARGENTINA_BUENOS_AIRES
- TZ_AMERICA_ARGENTINA_CATAMARCA
- TZ_AMERICA_ARGENTINA_CORDOBA
- TZ_AMERICA_ARGENTINA_JUJUY
- TZ_AMERICA_ARGENTINA_LA_RIOJA
- TZ_AMERICA_ARGENTINA_MENDOZA
- TZ_AMERICA_ARGENTINA_RIO_GALLEGOS
- TZ_AMERICA_ARGENTINA_SALTA
- TZ_AMERICA_ARGENTINA_SAN_JUAN
- TZ_AMERICA_ARGENTINA_SAN_LUIS
- TZ_AMERICA_ARGENTINA_TUCUMAN
- TZ_AMERICA_ARGENTINA_USHUAIA
- TZ_AMERICA_ASUNCION
- TZ_AMERICA_ATIKOKAN
- TZ_AMERICA_BAHIA
- TZ_AMERICA_BAHIA_BANDERAS
- TZ_AMERICA_BARBADOS
- TZ_AMERICA_BELEM
- TZ_AMERICA_BELIZE
- TZ_AMERICA_BLANC_SABLON
- TZ_AMERICA_BOA_VISTA
- TZ_AMERICA_BOGOTA
- TZ_AMERICA_BOISE
- TZ_AMERICA_CAMBRIDGE_BAY
- TZ_AMERICA_CAMPO_GRANDE
- TZ_AMERICA_CANCUN
- TZ_AMERICA_CARACAS
- TZ_AMERICA_CAYENNE
- TZ_AMERICA_CHICAGO
- TZ_AMERICA_CHIHUAHUA
- TZ_AMERICA_COSTA_RICA
- TZ_AMERICA_CRESTON
- TZ_AMERICA_CUIABA
- TZ_AMERICA_CURACAO
- TZ_AMERICA_DANMARKSHAVN
- TZ_AMERICA_DAWSON
- TZ_AMERICA_DAWSON_CREEK
- TZ_AMERICA_DENVER
- TZ_AMERICA_DETROIT
- TZ_AMERICA_EDMONTON
- TZ_AMERICA_EIRUNEPE
- TZ_AMERICA_EL_SALVADOR
- TZ_AMERICA_FORT_NELSON
- TZ_AMERICA_FORTALEZA
- TZ_AMERICA_GLACE_BAY
- TZ_AMERICA_GODTHAB
- TZ_AMERICA_GOOSE_BAY
- TZ_AMERICA_GRAND_TURK
- TZ_AMERICA_GUATEMALA
- TZ_AMERICA_GUAYAQUIL
- TZ_AMERICA_GUYANA
- TZ_AMERICA_HALIFAX
- TZ_AMERICA_HAVANA
- TZ_AMERICA_HERMOSILLO
- TZ_AMERICA_INDIANA_INDIANAPOLIS
- TZ_AMERICA_INDIANA_KNOX
- TZ_AMERICA_INDIANA_MARENGO
- TZ_AMERICA_INDIANA_PETERSBURG
- TZ_AMERICA_INDIANA_TELL_CITY
- TZ_AMERICA_INDIANA_VEVAY
- TZ_AMERICA_INDIANA_VINCENNES
- TZ_AMERICA_INDIANA_WINAMAC
- TZ_AMERICA_INUVIK
- TZ_AMERICA_IQALUIT
- TZ_AMERICA_JAMAICA
- TZ_AMERICA_JUNEAU
- TZ_AMERICA_KENTUCKY_LOUISVILLE
- TZ_AMERICA_KENTUCKY_MONTICELLO
- TZ_AMERICA_LA_PAZ
- TZ_AMERICA_LIMA
- TZ_AMERICA_LOS_ANGELES
- TZ_AMERICA_MACEIO
- TZ_AMERICA_MANAGUA
- TZ_AMERICA_MANAUS
- TZ_AMERICA_MARTINIQUE
- TZ_AMERICA_MATAMOROS
- TZ_AMERICA_MAZATLAN
- TZ_AMERICA_MENOMINEE
- TZ_AMERICA_MERIDA
- TZ_AMERICA_METLAKATLA
- TZ_AMERICA_MEXICO_CITY
- TZ_AMERICA_MIQUELON
- TZ_AMERICA_MONCTON
- TZ_AMERICA_MONTERREY
- TZ_AMERICA_MONTEVIDEO
- TZ_AMERICA_NASSAU
- TZ_AMERICA_NEW_YORK
- TZ_AMERICA_NIPIGON
- TZ_AMERICA_NOME
- TZ_AMERICA_NORONHA
- TZ_AMERICA_NORTH_DAKOTA_BEULAH
- TZ_AMERICA_NORTH_DAKOTA_CENTER
- TZ_AMERICA_NORTH_DAKOTA_NEW_SALEM
- TZ_AMERICA_OJINAGA
- TZ_AMERICA_PANAMA
- TZ_AMERICA_PANGNIRTUNG
- TZ_AMERICA_PARAMARIBO
- TZ_AMERICA_PHOENIX
- TZ_AMERICA_PORT_OF_SPAIN
- TZ_AMERICA_PORT_AU_PRINCE
- TZ_AMERICA_PORTO_VELHO
- TZ_AMERICA_PUERTO_RICO
- TZ_AMERICA_PUNTA_ARENAS
- TZ_AMERICA_RAINY_RIVER
- TZ_AMERICA_RANKIN_INLET
- TZ_AMERICA_RECIFE
- TZ_AMERICA_REGINA
- TZ_AMERICA_RESOLUTE
- TZ_AMERICA_RIO_BRANCO
- TZ_AMERICA_SANTAREM
- TZ_AMERICA_SANTIAGO
- TZ_AMERICA_SANTO_DOMINGO
- TZ_AMERICA_SAO_PAULO
- TZ_AMERICA_SCORESBYSUND
- TZ_AMERICA_SITKA
- TZ_AMERICA_ST_JOHNS
- TZ_AMERICA_SWIFT_CURRENT
- TZ_AMERICA_TEGUCIGALPA
- TZ_AMERICA_THULE
- TZ_AMERICA_THUNDER_BAY
- TZ_AMERICA_TIJUANA
- TZ_AMERICA_TORONTO
- TZ_AMERICA_VANCOUVER
- TZ_AMERICA_WHITEHORSE
- TZ_AMERICA_WINNIPEG
- TZ_AMERICA_YAKUTAT
- TZ_AMERICA_YELLOWKNIFE
- TZ_ANTARCTICA_CASEY
- TZ_ANTARCTICA_DAVIS
- TZ_ANTARCTICA_DUMONTDURVILLE
- TZ_ANTARCTICA_MACQUARIE
- TZ_ANTARCTICA_MAWSON
- TZ_ANTARCTICA_PALMER
- TZ_ANTARCTICA_ROTHERA
- TZ_ANTARCTICA_SYOWA
- TZ_ANTARCTICA_TROLL
- TZ_ANTARCTICA_VOSTOK
- TZ_ASIA_ALMATY
- TZ_ASIA_AMMAN
- TZ_ASIA_ANADYR
- TZ_ASIA_AQTAU
- TZ_ASIA_AQTOBE
- TZ_ASIA_ASHGABAT
- TZ_ASIA_ATYRAU
- TZ_ASIA_BAGHDAD
- TZ_ASIA_BAKU
- TZ_ASIA_BANGKOK
- TZ_ASIA_BARNAUL
- TZ_ASIA_BEIRUT
- TZ_ASIA_BISHKEK
- TZ_ASIA_BRUNEI
- TZ_ASIA_CHITA
- TZ_ASIA_CHOIBALSAN
- TZ_ASIA_COLOMBO
- TZ_ASIA_DAMASCUS
- TZ_ASIA_DHAKA
- TZ_ASIA_DILI
- TZ_ASIA_DUBAI
- TZ_ASIA_DUSHANBE
- TZ_ASIA_FAMAGUSTA
- TZ_ASIA_GAZA
- TZ_ASIA_HEBRON
- TZ_ASIA_HO_CHI_MINH
- TZ_ASIA_HONG_KONG
- TZ_ASIA_HOVD
- TZ_ASIA_IRKUTSK
- TZ_ASIA_JAKARTA
- TZ_ASIA_JAYAPURA
- TZ_ASIA_JERUSALEM
- TZ_ASIA_KABUL
- TZ_ASIA_KAMCHATKA
- TZ_ASIA_KARACHI
- TZ_ASIA_KATHMANDU
- TZ_ASIA_KHANDYGA
- TZ_ASIA_KOLKATA
- TZ_ASIA_KRASNOYARSK
- TZ_ASIA_KUALA_LUMPUR
- TZ_ASIA_KUCHING
- TZ_ASIA_MACAU
- TZ_ASIA_MAGADAN
- TZ_ASIA_MAKASSAR
- TZ_ASIA_MANILA
- TZ_ASIA_NICOSIA
- TZ_ASIA_NOVOKUZNETSK
- TZ_ASIA_NOVOSIBIRSK
- TZ_ASIA_OMSK
- TZ_ASIA_ORAL
- TZ_ASIA_PONTIANAK
- TZ_ASIA_PYONGYANG
- TZ_ASIA_QATAR
- TZ_ASIA_QYZYLORDA
- TZ_ASIA_RIYADH
- TZ_ASIA_SAKHALIN
- TZ_ASIA_SAMARKAND
- TZ_ASIA_SEOUL
- TZ_ASIA_SHANGHAI
- TZ_ASIA_SINGAPORE
- TZ_ASIA_SREDNEKOLYMSK
- TZ_ASIA_TAIPEI
- TZ_ASIA_TASHKENT
- TZ_ASIA_TBILISI
- TZ_ASIA_TEHRAN
- TZ_ASIA_THIMPHU
- TZ_ASIA_TOKYO
- TZ_ASIA_TOMSK
- TZ_ASIA_ULAANBAATAR
- TZ_ASIA_URUMQI
- TZ_ASIA_UST_NERA
- TZ_ASIA_VLADIVOSTOK
- TZ_ASIA_YAKUTSK
- TZ_ASIA_YANGON
- TZ_ASIA_YEKATERINBURG
- TZ_ASIA_YEREVAN
- TZ_ATLANTIC_AZORES
- TZ_ATLANTIC_BERMUDA
- TZ_ATLANTIC_CANARY
- TZ_ATLANTIC_CAPE_VERDE
- TZ_ATLANTIC_FAROE
- TZ_ATLANTIC_MADEIRA
- TZ_ATLANTIC_REYKJAVIK
- TZ_ATLANTIC_SOUTH_GEORGIA
- TZ_ATLANTIC_STANLEY
- TZ_AUSTRALIA_ADELAIDE
- TZ_AUSTRALIA_BRISBANE
- TZ_AUSTRALIA_BROKEN_HILL
- TZ_AUSTRALIA_CURRIE
- TZ_AUSTRALIA_DARWIN
- TZ_AUSTRALIA_EUCLA
- TZ_AUSTRALIA_HOBART
- TZ_AUSTRALIA_LINDEMAN
- TZ_AUSTRALIA_LORD_HOWE
- TZ_AUSTRALIA_MELBOURNE
- TZ_AUSTRALIA_PERTH
- TZ_AUSTRALIA_SYDNEY
- TZ_EUROPE_AMSTERDAM
- TZ_EUROPE_ANDORRA
- TZ_EUROPE_ASTRAKHAN
- TZ_EUROPE_ATHENS
- TZ_EUROPE_BELGRADE
- TZ_EUROPE_BERLIN
- TZ_EUROPE_BRUSSELS
- TZ_EUROPE_BUCHAREST
- TZ_EUROPE_BUDAPEST
- TZ_EUROPE_CHISINAU
- TZ_EUROPE_COPENHAGEN
- TZ_EUROPE_DUBLIN
- TZ_EUROPE_GIBRALTAR
- TZ_EUROPE_HELSINKI
- TZ_EUROPE_ISTANBUL
- TZ_EUROPE_KALININGRAD
- TZ_EUROPE_KIEV
- TZ_EUROPE_KIROV
- TZ_EUROPE_LISBON
- TZ_EUROPE_LONDON
- TZ_EUROPE_LUXEMBOURG
- TZ_EUROPE_MADRID
- TZ_EUROPE_MALTA
- TZ_EUROPE_MINSK
- TZ_EUROPE_MONACO
- TZ_EUROPE_MOSCOW
- TZ_EUROPE_OSLO
- TZ_EUROPE_PARIS
- TZ_EUROPE_PRAGUE
- TZ_EUROPE_RIGA
- TZ_EUROPE_ROME
- TZ_EUROPE_SAMARA
- TZ_EUROPE_SARATOV
- TZ_EUROPE_SIMFEROPOL
- TZ_EUROPE_SOFIA
- TZ_EUROPE_STOCKHOLM
- TZ_EUROPE_TALLINN
- TZ_EUROPE_TIRANE
- TZ_EUROPE_ULYANOVSK
- TZ_EUROPE_UZHGOROD
- TZ_EUROPE_VIENNA
- TZ_EUROPE_VILNIUS
- TZ_EUROPE_VOLGOGRAD
- TZ_EUROPE_WARSAW
- TZ_EUROPE_ZAPOROZHYE
- TZ_EUROPE_ZURICH
- TZ_INDIAN_CHAGOS
- TZ_INDIAN_CHRISTMAS
- TZ_INDIAN_COCOS
- TZ_INDIAN_KERGUELEN
- TZ_INDIAN_MAHE
- TZ_INDIAN_MALDIVES
- TZ_INDIAN_MAURITIUS
- TZ_INDIAN_REUNION
- TZ_PACIFIC_APIA
- TZ_PACIFIC_AUCKLAND
- TZ_PACIFIC_BOUGAINVILLE
- TZ_PACIFIC_CHATHAM
- TZ_PACIFIC_CHUUK
- TZ_PACIFIC_EASTER
- TZ_PACIFIC_EFATE
- TZ_PACIFIC_ENDERBURY
- TZ_PACIFIC_FAKAOFO
- TZ_PACIFIC_FIJI
- TZ_PACIFIC_FUNAFUTI
- TZ_PACIFIC_GALAPAGOS
- TZ_PACIFIC_GAMBIER
- TZ_PACIFIC_GUADALCANAL
- TZ_PACIFIC_GUAM
- TZ_PACIFIC_HONOLULU
- TZ_PACIFIC_KIRITIMATI
- TZ_PACIFIC_KOSRAE
- TZ_PACIFIC_KWAJALEIN
- TZ_PACIFIC_MAJURO
- TZ_PACIFIC_MARQUESAS
- TZ_PACIFIC_NAURU
- TZ_PACIFIC_NIUE
- TZ_PACIFIC_NORFOLK
- TZ_PACIFIC_NOUMEA
- TZ_PACIFIC_PAGO_PAGO
- TZ_PACIFIC_PALAU
- TZ_PACIFIC_PITCAIRN
- TZ_PACIFIC_POHNPEI
- TZ_PACIFIC_PORT_MORESBY
- TZ_PACIFIC_RAROTONGA
- TZ_PACIFIC_TAHITI
- TZ_PACIFIC_TARAWA
- TZ_PACIFIC_TONGATAPU
- TZ_PACIFIC_WAKE
- TZ_PACIFIC_WALLIS
Some additional items for the tz database
- TZ_GMT
- TZ_GMT0
- TZ_UTC
- TZ_WET // Western European Time
- TZ_MET // Central European Time
- TZ_EET // Eastern European Time
- TZ_EST // Eastern Standard Time (North America)
- TZ_MST // Mountain Standard Time
- TZ_HST // Hawaiian Standard Time
- TZ_GREENWICH // Mapped to TZ_GMT
- TZ_UNIVERSAL // Mapped to TZ_UTC
- TZ_ZULU // Mapped to TZ_UTC
- TZ_CST6CDT
- TZ_EST5EDT
- TZ_MST7MDT
- TZ_PST8PDT
Windows TimeZone Mapping
Microsoft Windows uses an other type of TimeZone naming which ends up in less items. The following list of defines helps to build up a proper
mapping. However, such a mapping always will be a compromise (the tz database is more detailed). The name of the defines are corespondig with
the name of the Windows timezone, which should be selfexplaining. Because + and - are forbitten for define names, + had been replaced by P and
- by M. Colons had been remove. So UTC+01:00 becomes UTC_M0100. The names like used by Windows itself can be found in the comments behind the
mapping inside the timezone.h file.
- TZ_UTC_M1200_INTERNATIONAL_DATE_LINE_WEST
- TZ_UTC_M1100_COORDINATED_UNIVERSAL_TIME_11
- TZ_UTC_M1000_ALEUTIAN_ISLANDS
- TZ_UTC_M1000_HAWAII
- TZ_UTC_M0930_MARQUESAS_ISLANDS
- TZ_UTC_M0900_ALASKA
- TZ_UTC_M0900_COORDINATED_UNIVERSAL_TIME_09
- TZ_UTC_M0800_BAJA_CALIFORNIA
- TZ_UTC_M0800_COORDINATED_UNIVERSAL_TIME_08
- TZ_UTC_M0800_PACIFIC_TIME_US_CANADA
- TZ_UTC_M0700_ARIZONA
- TZ_UTC_M0700_CHIHUAHUA_LA_PAZ_MAZATLAN
- TZ_UTC_M0700_MOUNTAIN_TIME_US_CANADA
- TZ_UTC_M0600_CENTRAL_AMERICA
- TZ_UTC_M0600_CENTRAL_TIME_US_CANADA
- TZ_UTC_M0600_EASTER_ISLAND
- TZ_UTC_M0600_GUADALAJARA_MEXICO_CITY_MONTERREY
- TZ_UTC_M0600_SASKATCHEWAN
- TZ_UTC_M0500_BOGOTA_LIMA_QUITO_RIO_BRANCO
- TZ_UTC_M0500_CHETUMAL
- TZ_UTC_M0500_EASTERN_TIME_US_CANADA
- TZ_UTC_M0500_HAITI
- TZ_UTC_M0500_HAVANA
- TZ_UTC_M0500_INDIANA_EAST
- TZ_UTC_M0400_ASUNCION
- TZ_UTC_M0400_ATLANTIC_TIME_CANADA
- TZ_UTC_M0400_CARACAS
- TZ_UTC_M0400_CUIABA
- TZ_UTC_M0400_GEORGETOWN_LA_PAZ_MANAUS_SAN_JUAN
- TZ_UTC_M0400_SANTIAGO
- TZ_UTC_M0400_TURKS_AND_CAICOS
- TZ_UTC_M0330_NEWFOUNDLAND
- TZ_UTC_M0300_ARAGUAINA
- TZ_UTC_M0300_BRASILIA
- TZ_UTC_M0300_CAYENNE_FORTALEZA
- TZ_UTC_M0300_CITY_OF_BUENOS_AIRES
- TZ_UTC_M0300_GREENLAND
- TZ_UTC_M0300_MONTEVIDEO
- TZ_UTC_M0300_PUNTA_ARENAS
- TZ_UTC_M0300_SAINT_PIERRE_AND_MIQUELON
- TZ_UTC_M0300_SALVADOR
- TZ_UTC_M0200_COORDINATED_UNIVERSAL_TIME_02
- TZ_UTC_M0100_AZORES
- TZ_UTC_M0100_CABO_VERDE_IS
- TZ_UTC_COORDINATED_UNIVERSAL_TIME
- TZ_UTC_P0000_CASABLANCA
- TZ_UTC_P0000_DUBLIN_EDINBURGH_LISBON_LONDON
- TZ_UTC_P0000_MONROVIA_REYKJAVIK
- TZ_UTC_P0100_AMSTERDAM_BERLIN_BERN_ROME_STOCKHOLM_VIENNA
- TZ_UTC_P0100_BELGRADE_BRATISLAVA_BUDAPEST_LJUBLJANA_PRAGUE
- TZ_UTC_P0100_BRUSSELS_COPENHAGEN_MADRID_PARIS
- TZ_UTC_P0100_SARAJEVO_SKOPJE_WARSAW_ZAGREB
- TZ_UTC_P0100_WEST_CENTRAL_AFRICA
- TZ_UTC_P0100_WINDHOEK
- TZ_UTC_P0200_AMMAN
- TZ_UTC_P0200_ATHENS_BUCHAREST
- TZ_UTC_P0200_BEIRUT
- TZ_UTC_P0200_CAIRO
- TZ_UTC_P0200_CHISINAU
- TZ_UTC_P0200_DAMASCUS
- TZ_UTC_P0200_GAZA_HEBRON
- TZ_UTC_P0200_HARARE_PRETORIA
- TZ_UTC_P0200_HELSINKI_KYIV_RIGA_SOFIA_TALLINN_VILNIUS
- TZ_UTC_P0200_JERUSALEM
- TZ_UTC_P0200_KALININGRAD
- TZ_UTC_P0200_TRIPOLI
- TZ_UTC_P0300_BAGHDAD
- TZ_UTC_P0300_ISTANBUL
- TZ_UTC_P0300_KUWAIT_RIYADH
- TZ_UTC_P0300_MINSK
- TZ_UTC_P0300_MOSCOW_ST_PETERSBURG_VOLGOGRAD
- TZ_UTC_P0300_NAIROBI
- TZ_UTC_P0330_TEHRAN
- TZ_UTC_P0400_ABU_DHABI_MUSCAT
- TZ_UTC_P0400_ASTRAKHAN_ULYANOVSK
- TZ_UTC_P0400_BAKU
- TZ_UTC_P0400_IZHEVSK_SAMARA
- TZ_UTC_P0400_PORT_LOUIS
- TZ_UTC_P0400_SARATOV
- TZ_UTC_P0400_TBILISI
- TZ_UTC_P0400_YEREVAN
- TZ_UTC_P0430_KABUL
- TZ_UTC_P0500_ASHGABAT_TASHKENT
- TZ_UTC_P0500_EKATERINBURG
- TZ_UTC_P0500_ISLAMABAD_KARACHI
- TZ_UTC_P0530_CHENNAI_KOLKATA_MUMBAI_NEW_DELHI
- TZ_UTC_P0530_SRI_JAYAWARDENEPURA
- TZ_UTC_P0545_KATHMANDU
- TZ_UTC_P0600_ASTANA
- TZ_UTC_P0600_DHAKA
- TZ_UTC_P0600_OMSK
- TZ_UTC_P0630_YANGON_RANGOON
- TZ_UTC_P0700_BANGKOK_HANOI_JAKARTA
- TZ_UTC_P0700_BARNAUL_GORNO_ALTAYSK
- TZ_UTC_P0700_HOVD
- TZ_UTC_P0700_KRASNOYARSK
- TZ_UTC_P0700_NOVOSIBIRSK
- TZ_UTC_P0700_TOMSK
- TZ_UTC_P0800_BEIJING_CHONGQING_HONG_KONG_URUMQI
- TZ_UTC_P0800_IRKUTSK
- TZ_UTC_P0800_KUALA_LUMPUR_SINGAPORE
- TZ_UTC_P0800_PERTH
- TZ_UTC_P0800_TAIPEI
- TZ_UTC_P0800_ULAANBAATAR
- TZ_UTC_P0830_PYONGYANG
- TZ_UTC_P0845_EUCLA
- TZ_UTC_P0900_CHITA
- TZ_UTC_P0900_OSAKA_SAPPORO_TOKYO
- TZ_UTC_P0900_SEOUL
- TZ_UTC_P0900_YAKUTSK
- TZ_UTC_P0930_ADELAIDE
- TZ_UTC_P0930_DARWIN
- TZ_UTC_P1000_BRISBANE
- TZ_UTC_P1000_CANBERRA_MELBOURNE_SYDNEY
- TZ_UTC_P1000_GUAM_PORT_MORESBY
- TZ_UTC_P1000_HOBART
- TZ_UTC_P1000_VLADIVOSTOK
- TZ_UTC_P1030_LORD_HOWE_ISLAND
- TZ_UTC_P1100_BOUGAINVILLE_ISLAND
- TZ_UTC_P1100_CHOKURDAKH
- TZ_UTC_P1100_MAGADAN
- TZ_UTC_P1100_NORFOLK_ISLAND
- TZ_UTC_P1100_SAKHALIN
- TZ_UTC_P1100_SOLOMON_IS_NEW_CALEDONIA
- TZ_UTC_P1200_ANADYR_PETROPAVLOVSK_KAMCHATSKY
- TZ_UTC_P1200_AUCKLAND_WELLINGTON
- TZ_UTC_P1200_COORDINATED_UNIVERSAL_TIME_12
- TZ_UTC_P1200_FIJI
- TZ_UTC_P1245_CHATHAM_ISLANDS
- TZ_UTC_P1300_COORDINATED_UNIVERSAL_TIME_13
- TZ_UTC_P1300_NUKU_ALOFA
- TZ_UTC_P1300_SAMOA
- TZ_UTC_P1400_KIRITIMATI_ISLAND
Copyright information
The tzdb to Windows TimeZone mapping is based on the mapping made by the unicode group (
http://unicode.org/repos/cldr/trunk/common/supplemental/windowsZones.xml,
the terms of use can be found under http://www.unicode.org/copyright.html), with some adjustment based
on the english wikipedia artikel (http://cldr.unicode.org/development/development-process/design-proposals/extended-windows-olson-zid-mapping)