Skip to main content

Time Service

Time is an important concept for any IoT device, especially for features like device scheduling. There are two important concepts in this:

  1. Network time: the current UTC
  2. Time zone: gives the offset from UTC
    • Day Light Savings (automatic adjustment as per the day light savings for the configured timezone)

ESP RainMaker offers a variety of APIs to support this service. For detailed documentation, please refer to Utilities.

Network Time

Network time is usually fetched using SNTP. ESP RainMaker provides an abstraction layer over the SNTP component in ESP-IDF.

The APIs provided are:

  • Initialize time synchronization
    • esp_err_t esp_rmaker_time_sync_init(esp_rmaker_time_config_t *config)
  • Check if time has been synchronized
    • bool esp_rmaker_time_check(void)
  • Wait for the time to be synchronized
    • esp_err_t esp_rmaker_time_wait_for_sync(uint32_t ticks_to_wait)

Note: esp_rmaker_time_sync_init() gets called internally if you have set enable_time_sync=true in esp_rmaker_config_t passed to esp_rmaker_node_init().

Timezone

ESP-IDF provides a facility to set the timezone using the TZ variable and the tz_set() API. For information on the TZ variable, please refer to the GNU libc documentation. ESP RainMaker provides an abstraction layer over this, and offers various ways of setting the time zone. There are two main timezone-related variables:

  1. Timezone: A user-friendly timezone string like Asia/Shanghai, which is commonly used in most systems, including iOS and Android. For a complete list of supported values, please check Supported Timezone Values. Whenever you set this variable using any API, it internally also sets the POSIX timezone as per mapping.
  2. POSIX Timezone: A timezone string adhering to the first or second formats in the GNU libc documentation for TZ. It has information on timezone names (e.g., CST), offset from UTC, and daylight saving start and end times. You can even create custom timezones using this format.

Day Light Savings

Based on the configured timezone, the ESP RainMaker core automatically manages the Day Light Savings, so that schedules (if any) are unaffected.

The various ways in which the timezones can be set are as follows:

C APIs

The C APIs store the timezone in NVS. So, even after a reboot, when you call esp_rmaker_time_sync_init(), the timezone gets set automatically.

  • Set the time zone using the timezone region string
    • esp_err_t esp_rmaker_time_set_timezone(const char *tz);
  • Set the time zone using the POSIX format
    • esp_err_t esp_rmaker_time_set_timezone_posix(const char *tz_posix)

Config Option

CONFIG_ESP_RMAKER_DEF_TIMEZONE: Set Timezone region string. The default is empty, i.e., UTC. Note that if the timezone is set using any of the C APIs, those values will override this Config option.

RainMaker Service

An optional RainMaker service has been provided to allow setting timezone from clients like mobile apps. This can be enabled using:

esp_err_t esp_rmaker_timezone_service_enable(void);

This adds the following service in the node configuration:

{
"name": "Time",
"params": [{
"data_type": "string",
"name": "TZ",
"properties": [
"read",
"write"
],
"type": "esp.param.tz"
},
{
"data_type": "string",
"name": "TZ-POSIX",
"properties": [
"read",
"write"
],
"type": "esp.param.tz_posix"
}
],
"type": "esp.service.time"
}

Corresponding parameters (with sample values):

{
"Time": {
"TZ": "America/Los_Angeles",
"TZ-POSIX": "PST8PDT,M3.2.0,M11.1.0"
}
}

Writing to esp.param.tz will automatically set esp.param.tz_posix as well. The values are stored in NVS, so that they stay even after reboot. You can set some defaults by calling the corresponding C APIs before enabling the service.

Supported Timezone Values

Note: This list is a set of valid values for setting the timezone region string using the esp_rmaker_time_set_timezone() API, or the esp.param.tz parameter, or the CONFIG_ESP_RMAKER_DEF_TIMEZONE Config option.

For POSIX timezone, i.e., esp_rmaker_time_set_timezone_posix() or esp.param.tz_posix, you may use other values not covered here, but ensure to adhere to the first and second formats in GNU libc documentation for TZ.

Timezone Region StringPOSIX Timezone String
Africa/AbidjanGMT0
Africa/AccraGMT0
Africa/Addis_AbabaEAT-3
Africa/AlgiersCET-1
Africa/AsmaraEAT-3
Africa/BamakoGMT0
Africa/BanguiWAT-1
Africa/BanjulGMT0
Africa/BissauGMT0
Africa/BlantyreCAT-2
Africa/BrazzavilleWAT-1
Africa/BujumburaCAT-2
Africa/CairoEET-2
Africa/Casablanca<+01>-1
Africa/CeutaCET-1CEST,M3.5.0,M10.5.0/3
Africa/ConakryGMT0
Africa/DakarGMT0
Africa/Dar_es_SalaamEAT-3
Africa/DjiboutiEAT-3
Africa/DoualaWAT-1
Africa/El_Aaiun<+01>-1
Africa/FreetownGMT0
Africa/GaboroneCAT-2
Africa/HarareCAT-2
Africa/JohannesburgSAST-2
Africa/JubaEAT-3
Africa/KampalaEAT-3
Africa/KhartoumCAT-2
Africa/KigaliCAT-2
Africa/KinshasaWAT-1
Africa/LagosWAT-1
Africa/LibrevilleWAT-1
Africa/LomeGMT0
Africa/LuandaWAT-1
Africa/LubumbashiCAT-2
Africa/LusakaCAT-2
Africa/MalaboWAT-1
Africa/MaputoCAT-2
Africa/MaseruSAST-2
Africa/MbabaneSAST-2
Africa/MogadishuEAT-3
Africa/MonroviaGMT0
Africa/NairobiEAT-3
Africa/NdjamenaWAT-1
Africa/NiameyWAT-1
Africa/NouakchottGMT0
Africa/OuagadougouGMT0
Africa/Porto-NovoWAT-1
Africa/Sao_TomeGMT0
Africa/TripoliEET-2
Africa/TunisCET-1
Africa/WindhoekCAT-2
America/AdakHST10HDT,M3.2.0,M11.1.0
America/AnchorageAKST9AKDT,M3.2.0,M11.1.0
America/AnguillaAST4
America/AntiguaAST4
America/Araguaina<-03>3
America/Argentina/Buenos_Aires<-03>3
America/Argentina/Catamarca<-03>3
America/Argentina/Cordoba<-03>3
America/Argentina/Jujuy<-03>3
America/Argentina/La_Rioja<-03>3
America/Argentina/Mendoza<-03>3
America/Argentina/Rio_Gallegos<-03>3
America/Argentina/Salta<-03>3
America/Argentina/San_Juan<-03>3
America/Argentina/San_Luis<-03>3
America/Argentina/Tucuman<-03>3
America/Argentina/Ushuaia<-03>3
America/ArubaAST4
America/Asuncion<-04>4<-03>,M10.1.0/0,M3.4.0/0
America/AtikokanEST5
America/Bahia<-03>3
America/Bahia_BanderasCST6CDT,M4.1.0,M10.5.0
America/BarbadosAST4
America/Belem<-03>3
America/BelizeCST6
America/Blanc-SablonAST4
America/Boa_Vista<-04>4
America/Bogota<-05>5
America/BoiseMST7MDT,M3.2.0,M11.1.0
America/Cambridge_BayMST7MDT,M3.2.0,M11.1.0
America/Campo_Grande<-04>4
America/CancunEST5
America/Caracas<-04>4
America/Cayenne<-03>3
America/CaymanEST5
America/ChicagoCST6CDT,M3.2.0,M11.1.0
America/ChihuahuaMST7MDT,M4.1.0,M10.5.0
America/Costa_RicaCST6
America/CrestonMST7
America/Cuiaba<-04>4
America/CuracaoAST4
America/DanmarkshavnGMT0
America/DawsonMST7
America/Dawson_CreekMST7
America/DenverMST7MDT,M3.2.0,M11.1.0
America/DetroitEST5EDT,M3.2.0,M11.1.0
America/DominicaAST4
America/EdmontonMST7MDT,M3.2.0,M11.1.0
America/Eirunepe<-05>5
America/El_SalvadorCST6
America/Fortaleza<-03>3
America/Fort_NelsonMST7
America/Glace_BayAST4ADT,M3.2.0,M11.1.0
America/Godthab<-03>3<-02>,M3.5.0/-2,M10.5.0/-1
America/Goose_BayAST4ADT,M3.2.0,M11.1.0
America/Grand_TurkEST5EDT,M3.2.0,M11.1.0
America/GrenadaAST4
America/GuadeloupeAST4
America/GuatemalaCST6
America/Guayaquil<-05>5
America/Guyana<-04>4
America/HalifaxAST4ADT,M3.2.0,M11.1.0
America/HavanaCST5CDT,M3.2.0/0,M11.1.0/1
America/HermosilloMST7
America/Indiana/IndianapolisEST5EDT,M3.2.0,M11.1.0
America/Indiana/KnoxCST6CDT,M3.2.0,M11.1.0
America/Indiana/MarengoEST5EDT,M3.2.0,M11.1.0
America/Indiana/PetersburgEST5EDT,M3.2.0,M11.1.0
America/Indiana/Tell_CityCST6CDT,M3.2.0,M11.1.0
America/Indiana/VevayEST5EDT,M3.2.0,M11.1.0
America/Indiana/VincennesEST5EDT,M3.2.0,M11.1.0
America/Indiana/WinamacEST5EDT,M3.2.0,M11.1.0
America/InuvikMST7MDT,M3.2.0,M11.1.0
America/IqaluitEST5EDT,M3.2.0,M11.1.0
America/JamaicaEST5
America/JuneauAKST9AKDT,M3.2.0,M11.1.0
America/Kentucky/LouisvilleEST5EDT,M3.2.0,M11.1.0
America/Kentucky/MonticelloEST5EDT,M3.2.0,M11.1.0
America/KralendijkAST4
America/La_Paz<-04>4
America/Lima<-05>5
America/Los_AngelesPST8PDT,M3.2.0,M11.1.0
America/Lower_PrincesAST4
America/Maceio<-03>3
America/ManaguaCST6
America/Manaus<-04>4
America/MarigotAST4
America/MartiniqueAST4
America/MatamorosCST6CDT,M3.2.0,M11.1.0
America/MazatlanMST7MDT,M4.1.0,M10.5.0
America/MenomineeCST6CDT,M3.2.0,M11.1.0
America/MeridaCST6CDT,M4.1.0,M10.5.0
America/MetlakatlaAKST9AKDT,M3.2.0,M11.1.0
America/Mexico_CityCST6CDT,M4.1.0,M10.5.0
America/Miquelon<-03>3<-02>,M3.2.0,M11.1.0
America/MonctonAST4ADT,M3.2.0,M11.1.0
America/MonterreyCST6CDT,M4.1.0,M10.5.0
America/Montevideo<-03>3
America/MontrealEST5EDT,M3.2.0,M11.1.0
America/MontserratAST4
America/NassauEST5EDT,M3.2.0,M11.1.0
America/New_YorkEST5EDT,M3.2.0,M11.1.0
America/NipigonEST5EDT,M3.2.0,M11.1.0
America/NomeAKST9AKDT,M3.2.0,M11.1.0
America/Noronha<-02>2
America/North_Dakota/BeulahCST6CDT,M3.2.0,M11.1.0
America/North_Dakota/CenterCST6CDT,M3.2.0,M11.1.0
America/North_Dakota/New_SalemCST6CDT,M3.2.0,M11.1.0
America/OjinagaMST7MDT,M3.2.0,M11.1.0
America/PanamaEST5
America/PangnirtungEST5EDT,M3.2.0,M11.1.0
America/Paramaribo<-03>3
America/PhoenixMST7
America/Port-au-PrinceEST5EDT,M3.2.0,M11.1.0
America/Port_of_SpainAST4
America/Porto_Velho<-04>4
America/Puerto_RicoAST4
America/Punta_Arenas<-03>3
America/Rainy_RiverCST6CDT,M3.2.0,M11.1.0
America/Rankin_InletCST6CDT,M3.2.0,M11.1.0
America/Recife<-03>3
America/ReginaCST6
America/ResoluteCST6CDT,M3.2.0,M11.1.0
America/Rio_Branco<-05>5
America/Santarem<-03>3
America/Santiago<-04>4<-03>,M9.1.6/24,M4.1.6/24
America/Santo_DomingoAST4
America/Sao_Paulo<-03>3
America/Scoresbysund<-01>1<+00>,M3.5.0/0,M10.5.0/1
America/SitkaAKST9AKDT,M3.2.0,M11.1.0
America/St_BarthelemyAST4
America/St_JohnsNST3:30NDT,M3.2.0,M11.1.0
America/St_KittsAST4
America/St_LuciaAST4
America/St_ThomasAST4
America/St_VincentAST4
America/Swift_CurrentCST6
America/TegucigalpaCST6
America/ThuleAST4ADT,M3.2.0,M11.1.0
America/Thunder_BayEST5EDT,M3.2.0,M11.1.0
America/TijuanaPST8PDT,M3.2.0,M11.1.0
America/TorontoEST5EDT,M3.2.0,M11.1.0
America/TortolaAST4
America/VancouverPST8PDT,M3.2.0,M11.1.0
America/WhitehorseMST7
America/WinnipegCST6CDT,M3.2.0,M11.1.0
America/YakutatAKST9AKDT,M3.2.0,M11.1.0
America/YellowknifeMST7MDT,M3.2.0,M11.1.0
Antarctica/Casey<+08>-8
Antarctica/Davis<+07>-7
Antarctica/DumontDUrville<+10>-10
Antarctica/Macquarie<+11>-11
Antarctica/Mawson<+05>-5
Antarctica/McMurdoNZST-12NZDT,M9.5.0,M4.1.0/3
Antarctica/Palmer<-03>3
Antarctica/Rothera<-03>3
Antarctica/Syowa<+03>-3
Antarctica/Troll<+00>0<+02>-2,M3.5.0/1,M10.5.0/3
Antarctica/Vostok<+06>-6
Arctic/LongyearbyenCET-1CEST,M3.5.0,M10.5.0/3
Asia/Aden<+03>-3
Asia/Almaty<+06>-6
Asia/AmmanEET-2EEST,M3.5.4/24,M10.5.5/1
Asia/Anadyr<+12>-12
Asia/Aqtau<+05>-5
Asia/Aqtobe<+05>-5
Asia/Ashgabat<+05>-5
Asia/Atyrau<+05>-5
Asia/Baghdad<+03>-3
Asia/Bahrain<+03>-3
Asia/Baku<+04>-4
Asia/Bangkok<+07>-7
Asia/Barnaul<+07>-7
Asia/BeirutEET-2EEST,M3.5.0/0,M10.5.0/0
Asia/Bishkek<+06>-6
Asia/Brunei<+08>-8
Asia/Chita<+09>-9
Asia/Choibalsan<+08>-8
Asia/Colombo<+0530>-5:30
Asia/DamascusEET-2EEST,M3.5.5/0,M10.5.5/0
Asia/Dhaka<+06>-6
Asia/Dili<+09>-9
Asia/Dubai<+04>-4
Asia/Dushanbe<+05>-5
Asia/FamagustaEET-2EEST,M3.5.0/3,M10.5.0/4
Asia/GazaEET-2EEST,M3.5.5/0,M10.5.6/1
Asia/HebronEET-2EEST,M3.5.5/0,M10.5.6/1
Asia/Ho_Chi_Minh<+07>-7
Asia/Hong_KongHKT-8
Asia/Hovd<+07>-7
Asia/Irkutsk<+08>-8
Asia/JakartaWIB-7
Asia/JayapuraWIT-9
Asia/JerusalemIST-2IDT,M3.4.4/26,M10.5.0
Asia/Kabul<+0430>-4:30
Asia/Kamchatka<+12>-12
Asia/KarachiPKT-5
Asia/Kathmandu<+0545>-5:45
Asia/Khandyga<+09>-9
Asia/KolkataIST-5:30
Asia/Krasnoyarsk<+07>-7
Asia/Kuala_Lumpur<+08>-8
Asia/Kuching<+08>-8
Asia/Kuwait<+03>-3
Asia/MacauCST-8
Asia/Magadan<+11>-11
Asia/MakassarWITA-8
Asia/ManilaPST-8
Asia/Muscat<+04>-4
Asia/NicosiaEET-2EEST,M3.5.0/3,M10.5.0/4
Asia/Novokuznetsk<+07>-7
Asia/Novosibirsk<+07>-7
Asia/Omsk<+06>-6
Asia/Oral<+05>-5
Asia/Phnom_Penh<+07>-7
Asia/PontianakWIB-7
Asia/PyongyangKST-9
Asia/Qatar<+03>-3
Asia/Qyzylorda<+05>-5
Asia/Riyadh<+03>-3
Asia/Sakhalin<+11>-11
Asia/Samarkand<+05>-5
Asia/SeoulKST-9
Asia/ShanghaiCST-8
Asia/Singapore<+08>-8
Asia/Srednekolymsk<+11>-11
Asia/TaipeiCST-8
Asia/Tashkent<+05>-5
Asia/Tbilisi<+04>-4
Asia/Tehran<+0330>-3:30<+0430>,J79/24,J263/24
Asia/Thimphu<+06>-6
Asia/TokyoJST-9
Asia/Tomsk<+07>-7
Asia/Ulaanbaatar<+08>-8
Asia/Urumqi<+06>-6
Asia/Ust-Nera<+10>-10
Asia/Vientiane<+07>-7
Asia/Vladivostok<+10>-10
Asia/Yakutsk<+09>-9
Asia/Yangon<+0630>-6:30
Asia/Yekaterinburg<+05>-5
Asia/Yerevan<+04>-4
Atlantic/Azores<-01>1<+00>,M3.5.0/0,M10.5.0/1
Atlantic/BermudaAST4ADT,M3.2.0,M11.1.0
Atlantic/CanaryWET0WEST,M3.5.0/1,M10.5.0
Atlantic/Cape_Verde<-01>1
Atlantic/FaroeWET0WEST,M3.5.0/1,M10.5.0
Atlantic/MadeiraWET0WEST,M3.5.0/1,M10.5.0
Atlantic/ReykjavikGMT0
Atlantic/South_Georgia<-02>2
Atlantic/Stanley<-03>3
Atlantic/St_HelenaGMT0
Australia/AdelaideACST-9:30ACDT,M10.1.0,M4.1.0/3
Australia/BrisbaneAEST-10
Australia/Broken_HillACST-9:30ACDT,M10.1.0,M4.1.0/3
Australia/CurrieAEST-10AEDT,M10.1.0,M4.1.0/3
Australia/DarwinACST-9:30
Australia/Eucla<+0845>-8:45
Australia/HobartAEST-10AEDT,M10.1.0,M4.1.0/3
Australia/LindemanAEST-10
Australia/Lord_Howe<+1030>-10:30<+11>-11,M10.1.0,M4.1.0
Australia/MelbourneAEST-10AEDT,M10.1.0,M4.1.0/3
Australia/PerthAWST-8
Australia/SydneyAEST-10AEDT,M10.1.0,M4.1.0/3
Europe/AmsterdamCET-1CEST,M3.5.0,M10.5.0/3
Europe/AndorraCET-1CEST,M3.5.0,M10.5.0/3
Europe/Astrakhan<+04>-4
Europe/AthensEET-2EEST,M3.5.0/3,M10.5.0/4
Europe/BelgradeCET-1CEST,M3.5.0,M10.5.0/3
Europe/BerlinCET-1CEST,M3.5.0,M10.5.0/3
Europe/BratislavaCET-1CEST,M3.5.0,M10.5.0/3
Europe/BrusselsCET-1CEST,M3.5.0,M10.5.0/3
Europe/BucharestEET-2EEST,M3.5.0/3,M10.5.0/4
Europe/BudapestCET-1CEST,M3.5.0,M10.5.0/3
Europe/BusingenCET-1CEST,M3.5.0,M10.5.0/3
Europe/ChisinauEET-2EEST,M3.5.0,M10.5.0/3
Europe/CopenhagenCET-1CEST,M3.5.0,M10.5.0/3
Europe/DublinIST-1GMT0,M10.5.0,M3.5.0/1
Europe/GibraltarCET-1CEST,M3.5.0,M10.5.0/3
Europe/GuernseyGMT0BST,M3.5.0/1,M10.5.0
Europe/HelsinkiEET-2EEST,M3.5.0/3,M10.5.0/4
Europe/Isle_of_ManGMT0BST,M3.5.0/1,M10.5.0
Europe/Istanbul<+03>-3
Europe/JerseyGMT0BST,M3.5.0/1,M10.5.0
Europe/KaliningradEET-2
Europe/KievEET-2EEST,M3.5.0/3,M10.5.0/4
Europe/Kirov<+03>-3
Europe/LisbonWET0WEST,M3.5.0/1,M10.5.0
Europe/LjubljanaCET-1CEST,M3.5.0,M10.5.0/3
Europe/LondonGMT0BST,M3.5.0/1,M10.5.0
Europe/LuxembourgCET-1CEST,M3.5.0,M10.5.0/3
Europe/MadridCET-1CEST,M3.5.0,M10.5.0/3
Europe/MaltaCET-1CEST,M3.5.0,M10.5.0/3
Europe/MariehamnEET-2EEST,M3.5.0/3,M10.5.0/4
Europe/Minsk<+03>-3
Europe/MonacoCET-1CEST,M3.5.0,M10.5.0/3
Europe/MoscowMSK-3
Europe/OsloCET-1CEST,M3.5.0,M10.5.0/3
Europe/ParisCET-1CEST,M3.5.0,M10.5.0/3
Europe/PodgoricaCET-1CEST,M3.5.0,M10.5.0/3
Europe/PragueCET-1CEST,M3.5.0,M10.5.0/3
Europe/RigaEET-2EEST,M3.5.0/3,M10.5.0/4
Europe/RomeCET-1CEST,M3.5.0,M10.5.0/3
Europe/Samara<+04>-4
Europe/San_MarinoCET-1CEST,M3.5.0,M10.5.0/3
Europe/SarajevoCET-1CEST,M3.5.0,M10.5.0/3
Europe/Saratov<+04>-4
Europe/SimferopolMSK-3
Europe/SkopjeCET-1CEST,M3.5.0,M10.5.0/3
Europe/SofiaEET-2EEST,M3.5.0/3,M10.5.0/4
Europe/StockholmCET-1CEST,M3.5.0,M10.5.0/3
Europe/TallinnEET-2EEST,M3.5.0/3,M10.5.0/4
Europe/TiraneCET-1CEST,M3.5.0,M10.5.0/3
Europe/Ulyanovsk<+04>-4
Europe/UzhgorodEET-2EEST,M3.5.0/3,M10.5.0/4
Europe/VaduzCET-1CEST,M3.5.0,M10.5.0/3
Europe/VaticanCET-1CEST,M3.5.0,M10.5.0/3
Europe/ViennaCET-1CEST,M3.5.0,M10.5.0/3
Europe/VilniusEET-2EEST,M3.5.0/3,M10.5.0/4
Europe/Volgograd<+04>-4
Europe/WarsawCET-1CEST,M3.5.0,M10.5.0/3
Europe/ZagrebCET-1CEST,M3.5.0,M10.5.0/3
Europe/ZaporozhyeEET-2EEST,M3.5.0/3,M10.5.0/4
Europe/ZurichCET-1CEST,M3.5.0,M10.5.0/3
Indian/AntananarivoEAT-3
Indian/Chagos<+06>-6
Indian/Christmas<+07>-7
Indian/Cocos<+0630>-6:30
Indian/ComoroEAT-3
Indian/Kerguelen<+05>-5
Indian/Mahe<+04>-4
Indian/Maldives<+05>-5
Indian/Mauritius<+04>-4
Indian/MayotteEAT-3
Indian/Reunion<+04>-4
Pacific/Apia<+13>-13<+14>,M9.5.0/3,M4.1.0/4
Pacific/AucklandNZST-12NZDT,M9.5.0,M4.1.0/3
Pacific/Bougainville<+11>-11
Pacific/Chatham<+1245>-12:45<+1345>,M9.5.0/2:45,M4.1.0/3:45
Pacific/Chuuk<+10>-10
Pacific/Easter<-06>6<-05>,M9.1.6/22,M4.1.6/22
Pacific/Efate<+11>-11
Pacific/Enderbury<+13>-13
Pacific/Fakaofo<+13>-13
Pacific/Fiji<+12>-12<+13>,M11.2.0,M1.2.3/99
Pacific/Funafuti<+12>-12
Pacific/Galapagos<-06>6
Pacific/Gambier<-09>9
Pacific/Guadalcanal<+11>-11
Pacific/GuamChST-10
Pacific/HonoluluHST10
Pacific/Kiritimati<+14>-14
Pacific/Kosrae<+11>-11
Pacific/Kwajalein<+12>-12
Pacific/Majuro<+12>-12
Pacific/Marquesas<-0930>9:30
Pacific/MidwaySST11
Pacific/Nauru<+12>-12
Pacific/Niue<-11>11
Pacific/Norfolk<+11>-11<+12>,M10.1.0,M4.1.0/3
Pacific/Noumea<+11>-11
Pacific/Pago_PagoSST11
Pacific/Palau<+09>-9
Pacific/Pitcairn<-08>8
Pacific/Pohnpei<+11>-11
Pacific/Port_Moresby<+10>-10
Pacific/Rarotonga<-10>10
Pacific/SaipanChST-10
Pacific/Tahiti<-10>10
Pacific/Tarawa<+12>-12
Pacific/Tongatapu<+13>-13
Pacific/Wake<+12>-12
Pacific/Wallis<+12>-12