Климат на севере страны субэкваториальный, на юге - тропический. Летом (декабрь-март) средние температуры не превышают 25 C, в зимний сухой сезон (июнь-август) - 17 C. Среднее количество годовых осадков достигает 400 мм. в долине реки Лимпопо на юге страны и 1000 мм. в горах. Максимум дождей выпадает с ноября по март.