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)