Pretoria has a humid subtropical climate with long hot rainy summers, and short, mild winters. The city experiences the typical winters of South Africa with cold, clear nights and mild to moderately warm days. Although the average lows during winter are mild, it can get cold due to the clear skies, with nighttime low temperatures in recent years in the range of 2 to −5 °C (36 to 23 °F).
The average annual temperature is 18.7 °C (65.7 °F). This is rather high, considering the city’s relatively high altitude of about 1,339 metres (4,393 feet), and is due mainly to its sheltered valley position, which acts as a heat trap and cuts it off from cool southerly and south-easterly air masses for much of the year.
Rain is chiefly concentrated in the summer months, with drought conditions prevailing over the winter months, when frosts may be sharp. Snowfall is an extremely rare event; snowflakes were spotted in 1959, 1968 and 2012 in the city, but the city has never experienced an accumulation in its history.
During a nationwide heatwave in November 2011, Pretoria experienced temperatures that reached 39 °C (102 °F), unusual for that time of the year. Similar record-breaking extreme heat events also occurred in January 2013, when Pretoria experienced temperatures exceeding 37 °C (99 °F) on several days. The year 2014 was one of the wettest on record for the city. A total of 914 mm (36 in) fell up to the end of December, with 220 mm (9 in) recorded in this month alone. In 2015, Pretoria saw its worst drought since 1982; the month of November 2015 saw new records broken for high temperatures, with 43 °C (109 °F) recorded on 11 November after three weeks of temperatures between 35 °C (95 °F) and 43 °C (109 °F). Pretoria reached a new record high of 44 °C (111 °F) on 7 January 2016.