Map from Google - Johannesburg

In Johannesburg, the largest city of South Africa, the climate is subtropical, with mild and sunny winters (when, however, nights are cold), and pleasantly warm summers, usually sunny, but with some afternoon thunderstorms. The city is located near the Tropic, but its climate is tempered by altitude, since it is located on a plateau at 1,700 metres above sea level, therefore it's a pleasant and healthy climate (even though the city is polluted).
Being in the Southern Hemisphere, the seasons are reversed compared with Europe or North America.
The average temperature goes from 10 °C in June and July, to 21 °C in January.
Here are the average temperatures.
Average temperatures - Johannesburg
Min (°C)1514131052258111314
Max (°C)272625232118182124252526

Rainfall amounts to 700 millimetres per year, and is concentrated in the warm period, from October to March, when the rains occur in the form of downpour or thunderstorm. On the contrary, winter is a dry season, with rare and sporadic rains.
Here is the average precipitation.
Average precipitation - Johannesburg
Prec. (mm)1259090501510552575110105705

Winter, from May to August, is mild and sunny during the day, but nights are cold; in the coldest months, June and July, the minimum temperature is near freezing, especially in the outskirts of the city and in the countryside, where light frosts can occur. By day, however, with the sun, the air is mild, so that the maximum temperature hovers around 18/20 °C. In August the temperature already begins to increase a bit.
Every once in a while, however, cold air arrive here from the south, and in these cases the maximum temperature can remain around 10 °C.
Snow is a very rare phenomenon, because winter is a dry season and as mentioned during the day the air is usually mild; sometimes, however, you can see a bit of sleet in the early morning. Snowfalls with accumulation on the ground, however, it is not impossible, and occurred in May 1956, August 1962, June 1964, September 1981, June 28, 2007 and August 7, 2012. In nearby Pretoria, located at a bit lower altitude, snow is still more rare.

Summer, from November to March, is pleasantly warm, with cool nights, and possible showers and thunderstorms in the afternoon or in the evening. Hot days are rare, as the temperature rarely exceeds 30 °C, but the tropical sun at high altitudes is very strong, so it requires appropriate protection.

Spring and autumn are mild and sunny, although sometimes in April and September it can get cold at night, while in October there's often a summer-like weather, warm by day and with the first thunderstorms.

The amount of sunshine in Johannesburg is very good throughout the year, as the sky is usually clear, even though the relatively least sunny season is the summer, because of showers and thunderstorms, which however do not last long and soon give way to the sun.


When to go

The best months to visit Johannesburg are probably April, September and October, since they are mild months, less rainy than summer and less cold than winter. However, on closer view, Johannesburg can be visited throughout the year, given that summer is not too hot and it's sunny, even though it is disturbed by thunderstorms, while winter is nearly always mild and sunny during the day, although nights are often cold. The choice may therefore depend on the itinerary: for example, if you want to visit the Kruger Park, in the north-east of South Africa, you can choose the period from June to August, a period that in the south of the country, being winter, can be a bit cold and rainy.