Map from Google - South_Africa

The Republic of South Africa, the southernmost African country, extends from 22° to 34° south, and is covered in large part by a plateau, which tempers the summer heat but cools the winter nights. Being in the Southern Hemisphere, it has seasons opposite to Europe or North America. Apart from the southern coastline, the country is usually more arid in the west than in the east.

Area with a Mediterranean climate
In the southwestern coast, the climate is Mediterranean, with mild, rainy winters and warm, sunny summers. In Cape Town, the average temperature goes from 53.5 °F in July, to 70 °F in January and February. The summer temperatures are not excessively high, due to the influence of the ocean, though sometimes a hot dry wind that can raise the temperature to around 95 °F, called Berg blows from the mountains. On the contrary, in summer often the Cape Doctor blows, a strong southern breeze which cools the air and cleans it from pollution. On top of Table Mountain, the flat-topped mountain overlooking the city, about 3,000 feet high, often a layer of clouds forms, which the city's inhabitants call in a colloquial manner "tablecloth".
Here are the average temperatures of Cape Town.
Average temperatures - Cape Town
Cape TownJanFebMarAprMayJunJulAugSepOctNovDec
Min (°F)616157544846454648525559
Max (°F)798177736864646466707577

Throughout the year, in Cape Town 20 inches of rain fall, with a maximum in winter, from June to August. Here is the average precipitation.
Average precipitation - Cape Town
Cape TownJanFebMarAprMayJunJulAugSepOctNovDecYear
Prec. (in)

Given that summer is not too hot and it's also windy, the best time to visit the city goes from December to February, being a sunny and not too hot period. Even spring, from September to November is a good time, as it generally happens in areas with a Mediterranean climate, because it's a mild season, during which nature is in bloom.

Cape Town

The sea temperature is not high, however, it's slightly milder in the sheltered False Bay, east of Cape of Good Hope, than along the Atlantic coast to the west: in the former it reaches 68 °F in January and February, while in winter it does not decrease much, but only to 61 °F. In Cape Town, it never reaches 68 °F, therefore it's a bit cold even in summer, as we can see in the following table.
Sea temperature - Cape Town
Cape TownJanFebMarAprMayJunJulAugSepOctNovDec
Sea (°F)666664636361595959616364

The cities situated at the foot of the mountains, east of Cape Town, are rainier: in Stellenbosch 36.5 in of rain per year fall, but still with a Mediterranean pattern, therefore with a dry summer, which becomes a little warmer because of the greater distance from the sea. Cape Agulhas, which separates by convention the Atlantic from the Indian Ocean, is windy and overlooks a perilous sea, frequently rough and crossed by strong currents. To tell the truth, even the Cape of Good Hope is not very quiet, as evidenced by the name given originally by its discoverer, Bartolomeu Dias, who named it "the Cape of Storms".

Area having an arid climate
The west coast of South Africa, is affected by the Benguela Current, which cools the sea and makes the climate arid, because it inhibits the formation of warm air masses which could rise and condense. In this area, in fact, the annual precipitation drops below 14 in, but in a wide west-central area, where the southern part of the Namib Desert is found, it drops even below 8 in.
Here is the average rainfall of Alexander Bay, in the northern part of the coast, on the border with Namibia, where rainfall drops even below 2 inches per year.
Average precipitation - Alexander Bay
Alexander BayJanFebMarAprMayJunJulAugSepOctNovDecYear
Prec. (in)

Along the coast, the cold current also causes the formation of fog, mist and low clouds, especially in the morning. Here the climate is very mild, so that the average daytime temperatures are around 59 °F in winter, and around 68 °F in summer, even though rapid increases in temperature may occur when the wind blows from the desert, which lies to the east and is torrid in summer.
Here are the average temperatures of Port Nolloth, in the northern part of the coast.
Average temperatures - Port Nolloth
Port NollothJanFebMarAprMayJunJulAugSepOctNovDec
Min (°F)595957555252505052545559
Max (°F)666464636363616161616364

Moving inland, we find the plateau, where the influence of the sea is reduced, so that the daily temperature range is noticeably wider. This means that in summer the days can be scorching, but the nights are usually cool, while in winter the nights can be cold, with possible frosts after the outbreaks of cold air of Antarctic origin, while the days remain mild and mostly sunny.
Here are the average temperatures of Upington, located in the western part of the plateau, not far from the borders with Namibia and Botswana, and at 2,740 feet above sea level.
Average temperatures - Upington
Min (°F)727066595043414552596368
Max (°F)939188817368687277828891

The rains, which as we said are scarce, occur in winter along the west coast, while in the inland areas they occur in summer, in the form of afternoon showers.
Here is the average precipitation in Upington.
Average precipitation - Upington
Prec. (in)11.41.410.

The Kalahari Gemsbok National Park, which is the South African part of the Kgalagadi Transfrontier Park, on the border with Botswana, is occupied by a dry savannah and also by sand dunes: we are in the southern part of the Kalahari Desert.
The best times to visit the arid zone are spring and autumn, especially the months of April and September.

South and east coast
The thin coastal strip east of the area of Cape Town, is characterized by a very mild climate, which becomes progressively warmer and rainier as we move towards the east-northeast.
In the southern belt (the area circled in blue on the map), the climate is transitional between the Mediterranean and the warm oceanic: it's cool and breezy, with limited variations in temperature between winter and summer; rainfall is not abundant but it's well distributed throughout the year, with only a slight decrease in summer.
In Port Elizabeth, 24.8 in of rain per year fall, with a relative minimum in summer, between December and February. Here is the average precipitation.
Average precipitation - Port Elizabeth
Port ElizabethJanFebMarAprMayJunJulAugSepOctNovDecYear
Prec. (in)1.41.421.

Winter looks more like spring, since the average in July is 57 °F, although occasionally brief cold waves from Antarctica can lower the night-time temperature to around freezing, between June and September. Summer is nice, since the average in January and February is 70.5 °F, with a steady and constant breeze from the sea. Throughout the year, every now and then hot and dry winds blow from the mountains, which lie at a short distance from the coast. The best time to visit this area is summer, like in the aforementioned Mediterranean climate zone.
Average temperatures - Port Elizabeth
Port ElizabethJanFebMarAprMayJunJulAugSepOctNovDec
Min (°F)646663595450505254555963
Max (°F)757573727068646464687073

Unlike in Cape Town, in Port Elizabeth the sea is never very cold, and it becomes warm enough for swimming from December to May.
Sea temperature - Port Elizabeth
Port ElizabethJanFebMarAprMayJunJulAugSepOctNovDec
Sea (°F)737575737370686868687073

In the eastern part of the coast, the area circled in burgundy, the climate gets warmer, with more abundant rainfall in the warm season, so that it can be defined humid subtropical.
In East London, the temperatures are similar to those of Port Elizabeth, but winter is a bit milder; rainfall is more abundant, around 31 inches per year, with and evident increase in the period from October to March, when moisture is high, even though the temperatures are still not so high; on the other hand, winter is the least rainy season.
Continuing north-east, on the coast of Natal, in Durban it gets quite hot and humid in summer: the average in January and February is around 76 °F, and the humidity makes the heat muggy, even though the breezes blow in the afternoon, giving a bit of relief; thunderstorms may occur in the afternoon or in the evening, giving some additional relief (or maybe, disturbing those who are sunbathing on the beach). Here, about 40 in of rain per year fall, and more than 4 inches per month from November to March, while in winter, from June to August, it doesn't rain much. Here is the average precipitation.
Average precipitation - Durban
Prec. (in)

In winter, the daytime temperature is very pleasant, on average around 73 °F during the day.
Average temperatures - Durban
Min (°F)707068635752525559636468
Max (°F)828282797773737373757781

At this latitude, the sea temperature exceeds 73 °F from November to May, and in the end it's not so bad even in winter, since it does not drop below 72 °F.
Sea temperature - Durban
Sea (°F)797979777573727272727577

In winter, however, sometimes it can get a little cold, especially at night. For beach life, April is probably the best month, since it is a bit less rainy than the summer and warmer than the winter, however, there's some risk of tropical storms in this area (see below), therefore you can choose September and October, although in these months the sea is cooler. To visit the city, the temperatures are good from mid-May to August.

As we have seen, much of South Africa is covered by the highlands. The western part of the plateau has been included in the arid climate zone. In the central and eastern part of the plateau we are dealing with now, the rains become more abundant, especially in the warm season, when the humid currents from the Indian Ocean prevail.
Johannesburg, the capital, is located at 5,600 feet above sea level, in the plateau called Highveld, and thanks to the altitude has a mild and pleasant climate, and sunny too. In the warm months, from October to March, it's hot during the day, with possible thunderstorms in the afternoon or in the evening, while the nights are cool. Winter, from May to August, is dry and sunny, with very cool or even cold nights, but generally pleasant days. Sometimes at night the temperature can drop below freezing, especially in June and July. Here are the average temperatures.
Average temperatures - Johannesburg
Min (°F)595755504136364146525557
Max (°F)817977737064647075777779

A few times over the last century, even snowfall have occurred, during the period from June to August. Throughout the year, 28 in of rain fall on average, of which approximately 3.5/4.7 inches per month from November to March. Here is the average precipitation.
Average precipitation - Johannesburg
Prec. (in)

Having a good climate, Johannesburg can be visited throughout the year, perhaps excluding June, July and early August for the risk of cold. The best months is probably September, being mild, sunny and with little rain. Even April and October, although a little more rainy, are ok.
North-west of Johannesburg, lies the UNESCO World Heritage Site, "Cradle of Humankind", where ancient fossils of Australopithecus Africanus have been found.
North of Johannesburg, we find Pretoria, which is located at a slightly lower altitude, 4,300 feet, therefore has a similar climate, just slightly warmer than Johannesburg.
Kimberley, the capital of the Northern Cape Province, located at 3,900 feet above sea level, is characterized by a hot summer, and by poorer rains, around 17 inches per year, most likely from November to April, but less frequent than in Johannesburg. The rainiest months are February and March. Here is the average precipitation.
Average precipitation - Kimberley
Prec. (in)

For its more southern position, however, the city is more exposed to cold winds and night frosts during the period from May to September. Here too, the amount of sunshine is very good throughout the year, especially in winter.
Average temperatures - Kimberley
Min (°F)646359524537374148545963
Max (°F)918884777064667079828690

Bloemfontein, located at 4,600 feet, south-east of Kimberley, is slightly cooler on average. Here, frosts from June to August are frequent, but during the day the air is usually mild and the sun shines.
The coldest areas of the plateau are the southern ones, which are more exposed to polar air masses. A particularly cold city is Sutherland, located in the south-west, in the arid zone of the Great Karoo, at 4,750 feet above sea level. Here in winter snowfalls occur often enough, though typically light because of the dry climate. The coldest record is even 3 °F, recorded in July 2003. Precipitation amounts to 9.6 inches per year. Near the city, at 6,000 feet, we find the South African Astronomical Observatory, which includes the Southern African Large Telescope (SALT): this area was chosen because the skies are often clear and the air is limpid. Here are the average temperatures of Sutherland.
Average temperatures - Sutherland
Min (°F)464643373230283032364145
Max (°F)818175686154545761687377

South African Astronomical Observatory

Near the southern and eastern margins of the plateau, there are several mountain ranges, with peaks often exceeding 6,500 feet, the most imposing of which is the range of Drakensberg, whose highest peak, 11,424 feet high, is located in Lesotho. Above 8,200 feet, it can snow from June to August. Along the eastern escarpment, in the provinces of Eastern Cape, Kwa-Zulu Natal and Mpumalanga, the summer rains are plentiful, exceeding 4 inches per month, and the total annual can reach 40 in.

The far north-east of South Africa has a warmer climate than the plateau, both for the lower latitude (it's located on the Tropic of Capricorn), and for the lower altitude (it descends below 3,300 feet above sea level).
The Kruger National Park, home to elephants, lions and other animals of the savannah, is located on the border with Mozambique, mostly at an altitude ranging from 1,000 to 1,600 feet. Here the winter is dry and sunny, with large temperature variations between night and day: at night it can get cold, about 50 °F or less, while during the day the temperature is pleasantly warm, around 79/81 °F: therefore, for safaris during this period it's better to dress in layers. Summer is very hot and humid, with possible afternoon thunderstorms. Here are the average temperatures.
Average temperatures - Skukuza
Min (°F)706866615243454855616468
Max (°F)909088848279798184868690

The rains, scarce in winter, become relatively abundant in summer, due to afternoon thunderstorms. The amount of sunshine is good throughout the year. Here is the average precipitation.
Average precipitation - Skukuza
Prec. (in)

The best period in this area goes from June to August, in order to avoid the rains and the muggy heat of summer: you must, however, be adequately covered in the colder hours. In September and October, it's already hot during the day, sometimes very hot, but nights are pleasantly cool.

Kruger Park

The northernmost area, along the Limpopo River, on the border with Zimbabwe, where the Musina Nature Reserve and the Mapungubwe National Park (formerly Vhembe Dongola National Park) are located, both home to a large number of huge Baobab trees and also animals such as giraffes, antelopes and zebras, is particularly dry, and here days are very hot especially from November to February, when there is also some chance of showers in the afternoon, usually not heavy.

The north-east coast of South Africa, north of Durban, where cities such as Richards Bay and St Lucia are found (but sometimes also in Durban, as happened with the tropical storm Irina in March 2012), sometimes can be touched by tropical cyclones, which form in the Indian Ocean from mid-November to May (but most likely from late December to mid-April), and usually hit the coast of the neighboring Mozambique, or they can sometimes follow a more southerly path, dissipating in the ocean: although so far no cyclone has ever directly hit the coast of South Africa, the effects in terms of rains, strong winds and storm surges can be remarkable even in this area of the country. Cyclones can also affect the north-east, in the provinces of Limpopo and Mpumalanga, after passing over the coast of Mozambique. In general, the main damage occurs in Mozambique, but in inland South Africa, including the Kruger Park, there may still be heavy rains. One more reason to avoid the austral summer, in addition to the hot and humid weather, which in any case is typical of this period.

When to go

It's hard to find a time that fits for all South Africa, because there are different climates.
A period which can be a good compromise between the different areas is spring, in September and October, in order to avoid the winter cold of mountains and plateaus, the summer heat of inland areas and the summer rains of the east, as well as the tropical cyclones that may affect the eastern regions in summer and autumn.
Wanting to go in the austral winter, for example in July and August, you will have to deal with a little cold at night in the northernmost parks, which, however, are mild and sunny during the day, while the cold can at times be intense especially in the highlands of the center and south, in addition there will be some rains in the area of Cape Town, and some wind along the southern coast, but after all even the austral winter is an acceptable period. If all goes well, it will be possible also to have a swim in the sea in Durban and in the north-eastern coast.
As we have seen, the sea is cold along the Atlantic coast, and gradually milder as we proceed from the south coast to the eastern one.

What to pack

In winter (June to August): for the west and south coast, up to Port Elizabeth, spring/autumn clothes, sweatshirt or sweater and jacket, raincoat or umbrella.
For the north-east coast (see Durban), spring/autumn clothes, a sweater and a jacket.
For the central plateau (Kimberley, Johannesburg), spring/autumn clothes for the day, but also a sweater and warm jacket for the evening; for the southern part of the plateau and at higher altitudes (see Sutherland, De Aar, Bethlehem, Bloemfontein), warm clothes, down jacket, gloves, scarf, hat for the evening.
For the north-east (Messina, Kruger Park) and the Kalahari, spring/autumn clothes, light for the day, sweater and warm jacket for the evening.

In summer (December to February): for the west coast, north of Cape Town, spring/autumn clothes, a sweatshirt and a light jacket.
For the south coast, from Cape Town to East London, light clothing, a sweater and a light jacket for the evening, a scarf for the breeze; for the north-east coast (see Durban), light clothing, a light sweatshirt, umbrella or light raincoat.
For the central plateau (Kimberley, Johannesburg), light clothes for the day, sweatshirt or sweater and light jacket for the evening, sun hat, light raincoat or umbrella; for the southern part of the plateau and at higher altitudes (see Sutherland, De Aar, Bethlehem, Bloemfontein), sweater, spring jacket for the evening.
For the north-east (Messina, Kruger Park) and the Kalahari, very light clothes, of natural fabrics, sun hat, light raincoat, sweatshirt for the evening.