South Africa is predominantly sunny, but when it does get cold you feel it, since everything is geared to fine weather. Midwinter in the southern hemisphere (the reverse of the north) is in June and July, and midsummer is during December and January, when the country shuts down for its annual holiday. The best time to visit depends on where you're going and what you're planning to see.
South Africa has distinct climatic zones. In Cape Town and the Garden Route coastal belt, summers tend to be warm, mild and unpredictable; rain can fall at any time of the year and winter days can be cold and wet. Many Capetonians regard March to May as the perfect time to visit, when the winds drop; it’s beautifully mild and the tourists have gone. Subtropical KwaZulu-Natal has warm, sunny winters and tepid seas; in common with the Lesotho highlands, the province’s Drakensberg range has misty days in summer and mountain snow in winter. Johannesburg and Pretoria lie on the highveld plateau and have a near-perfect climate; summer days are hot and frequently broken by dramatic thunder showers; winters are dry with chilly nights. East of Johannesburg, the lowveld, the low-lying wedge along the Mozambique border that includes the Kruger National Park and much of Swaziland, is subject to similar summer and winter rainfall patterns to the highveld, but experiences far greater extremes of temperature because of its considerably lower altitude.