Johannesburg Climate and Weather
Situated on the highveld plateau, Johannesburg has a subtropical highland climate with generally mild weather and plenty of sunshine. Between October and April (late spring, summer, and early autumn) it is hot with frequent thunderstorms in the afternoon. These dramatic storms are usually short-lived and shouldn't disrupt a holiday too much. It is just best to plan outdoor activities for the morning and midday when possible.
Between May and September (late autumn, winter and early spring) it is dry and sunny with cold nights. The sunny winter weather takes the edge off the cold, but after dark it can be freezing and the city is often covered in a layer of frost early in the morning. Snow is extremely rare. The average temperatures in summer, between December and February, range between 58.5F (14.7C) and 78F (25.6C), and in winter, between June and August, the average temperatures range between 39F (4C) and 62F (16C).
Johannesburg is a year-round destination but the best time to visit the city is over the festive season (December and January) when it is hot and sunny and the afternoon storms ensure the city is at its most lush and attractive. As an added bonus, the locals tend to spend holidays on the coast making Johannesburg pleasantly empty over the Christmas period. The winter months are also good for travel, but the city gets very dry and is not as attractive.