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 5,600 feet 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 50 °F in June and July, to 70 °F in January.
Here are the average temperatures.
Average temperatures - Johannesburg
Min (°F)595755504136364146525557
Max (°F)817977737064647075777779

Rainfall amounts to 28 inches 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. (in)

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 64/68 °F. 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 50 °F.
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 85 °F, 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.