Климат субэкваториальный. На севере страны два сезона дождей (с марта по май и с сентября по ноябрь), на юге — один (с ноября по апрель).
На побережье Индийского океана климат влажный, средняя дневная температура — от +28 °С до +30 °С.
Температура воды в Индийском океане от +24 °С до +26 °С.
В центральной части (1200–1700 м над уровнем моря) средняя температура — от +22 °С до +25 °С, ночи могут быть прохладными.