South Africa climate
World Climates covers 49 places in South Africa. By annual mean temperature, the warmest is Phalaborwa (23 °C74 °F) and the coolest is Ermelo (15 °C59 °F). The wettest is Pinetown with 1,407 mm55 in of precipitation per year, the driest Kimberley with 417 mm16 in.
The most common climate types (Köppen classification computed from these averages) are hot semi-arid (BSh, 13 places), subtropical highland (dry winter) (Cwb, 11 places), cold semi-arid (BSk, 10 places) and humid subtropical (Cfa, 4 places).
The highest monthly average high is in Kimberley (34 °C94 °F in December); the lowest monthly average low is in Ermelo (0 °C32 °F in July).
Across the places in South Africa, the months that most often rank as the most comfortable are April, May and September (49, 48 and 47 of 49 places respectively).
Frequently asked questions
Which is the warmest place in South Africa?
By annual mean temperature, the warmest place in South Africa is Phalaborwa at 23 °C74 °F. The coolest is Ermelo at 15 °C59 °F.
Where does it rain the most in South Africa?
Pinetown gets the most precipitation, 1,407 mm55 in in an average year. The driest place is Kimberley with 417 mm16 in.
How many places in South Africa does this site cover?
World Climates has climate data for 49 places in South Africa. Each one has a page with monthly averages for temperature, rainfall, humidity and daylight.
When is the best time to visit South Africa?
It depends on the place. Across South Africa, the months that most often rank as the most comfortable are April, May and September. Check the page of each city for its own best months.
Climate of every place in South Africa
| Place | Year | Max high | Min low | Precip. |
|---|---|---|---|---|
| Johannesburg | 16 | 27 | 0 | 642 |
| Cape Town | 17 | 22 | 13 | 489 |
| Durban | 22 | 26 | 19 | 888 |
| Pretoria | 19 | 30 | 3 | 571 |
| Soweto | 17 | 28 | 1 | 586 |
| Gqeberha | 19 | 25 | 12 | 436 |
| Pietermaritzburg | 18 | 27 | 7 | 1,170 |
| Bloemfontein | 17 | 32 | 0 | 490 |
| Thembisa | 17 | 28 | 2 | 642 |
| East London | 20 | 25 | 15 | 985 |
| Welkom | 18 | 31 | 1 | 525 |
| Newcastle | 18 | 30 | 4 | 747 |
| Krugersdorp | 16 | 28 | 1 | 633 |
| Rustenburg | 20 | 32 | 4 | 585 |
| Emalahleni | 16 | 27 | 1 | 656 |
| Roodepoort | 16 | 27 | 1 | 642 |
| Botshabelo | 16 | 31 | 0 | 560 |
| Polokwane | 19 | 29 | 5 | 530 |
| Richards Bay | 23 | 28 | 16 | 681 |
| Paarl | 18 | 31 | 7 | 727 |
| Klerksdorp | 19 | 32 | 2 | 528 |
| Somerset West | 18 | 28 | 10 | 734 |
| Mdantsane | 18 | 27 | 9 | 1,002 |
| George | 17 | 26 | 10 | 481 |
| Carletonville | 17 | 29 | 1 | 584 |
| Potchefstroom | 19 | 31 | 2 | 554 |
| Mthatha | 17 | 28 | 5 | 1,115 |
| KwaDukuza | 21 | 27 | 14 | 699 |
| Etwatwa | 17 | 28 | 1 | 626 |
| Vryheid | 17 | 29 | 3 | 765 |
| Pinetown | 19 | 27 | 9 | 1,407 |
| Ladysmith | 19 | 31 | 4 | 792 |
| eMbalenhle | 16 | 28 | 1 | 639 |
| Kimberley | 19 | 34 | 1 | 417 |
| Nigel | 17 | 28 | 1 | 619 |
| Sasolburg | 17 | 29 | 2 | 550 |
| Worcester | 18 | 34 | 7 | 671 |
| Ntuzuma | 21 | 27 | 14 | 699 |
| Virginia | 18 | 32 | 1 | 525 |
| Alberton | 17 | 29 | 1 | 586 |
| Queenstown | 16 | 30 | 2 | 725 |
| Kroonstad | 17 | 31 | 1 | 545 |
| Somaroboro | 18 | 29 | 3 | 603 |
| Mbombela | 21 | 31 | 8 | 685 |
| Phalaborwa | 23 | 33 | 11 | 543 |
| Thohoyandou | 22 | 32 | 9 | 586 |
| Standerton | 16 | 28 | 0 | 649 |
| Mokopane | 21 | 32 | 6 | 488 |
| Ermelo | 15 | 26 | 0 | 796 |
Year = annual mean temperature; max high = average high of the warmest month; min low = average low of the coldest month; precip. = annual total. Temperatures in °C°F, precipitation in mminches. Sorted by population.
Other cities over 100,000 people
These cities share a NASA POWER grid cell with a larger place, so their averages are shown on that page:
- Soshanguve → data of Pretoria
- Evaton → data of Soweto
- Benoni → data of Johannesburg
- Vereeniging → data of Soweto
- Boksburg → data of Johannesburg
- Randburg → data of Johannesburg
- Brakpan → data of Johannesburg
- Kariega → data of Gqeberha
- Germiston → data of Johannesburg
- Vanderbijlpark → data of Soweto
- Centurion → data of Thembisa
- Middelburg → data of Emalahleni
- Westonaria → data of Carletonville
- Motherwell → data of Gqeberha
- Mpumalanga → data of Pinetown
- Bhisho → data of Mdantsane
- Randfontein → data of Krugersdorp
- Brits → data of Rustenburg
- Hammanskraal → data of Pretoria
- Mabopane → data of Pretoria
- Orkney → data of Klerksdorp
- Tokoza → data of Alberton
Data: NASA POWER climatology 2001–2025 (MERRA-2 reanalysis, CERES satellite data) — grid-cell averages, not station records. Sources and method.