WeatherJourney.com

Johannesburg weather by month: averages, rainfall & climate trends

Perched high on the Highveld plateau at about 1,750 metres, Johannesburg sees dry-season sunshine and cold nights give way each spring to explosive afternoon thunderstorms that are one of the great spectacles of the sub-Saharan sky. Johannesburg weather by month: average temperatures, rainfall, records and how the climate has changed since 1940.

Today vs average

+6.0°Chigh well above average

29° / 16°Today
23° / 11°Average
see today in detail →

How it's changed

+1.3°Caverage temperature, 2016–2025 vs 1940–1949average temperature vs 1940–4912frost days a year now (2016–2025) · 10 in the 1940sfrost days a year · 10 in the 1940s11days above 30°C a year now (2016–2025) · 5 in the 1940sdays above 30°C · 5 in the 1940s+1.3°C vs the 1940s · see how it's changed →
Weather by montha typical year, averaged over the full recordJanuary, rain 148 mmhigh 24°low 14°February, rain 123 mmhigh 24°low 14°March, rain 95 mmhigh 23°low 12°April, rain 59 mmhigh 21°low 9°May, rain 21 mmhigh 19°low 6°June, rain 9 mmhigh 16°low 2°July, rain 4 mmhigh 16°low 2°August, rain 10 mmhigh 19°low 5°September, rain 26 mmhigh 23°low 9°October, rain 77 mmhigh 24°low 11°November, rain 116 mmhigh 24°low 12°December, rain 146 mmhigh 24°low 14°wettest month January, 148 mm · 832 mm a yearsee month by month →

Right now

What it's doing today vs the historical average for this date.
Partly cloudy

Right now

17.1°

15°feels like
42%humidity
4°dew point
5 km/hfrom N
UV index0.0
sunrise05:30sunset18:16day length12h 46m
TodayMostly clear29°16°
MonPartly cloudy26°13°
TueClear24°8°
WedClear27°10°
ThuClear30°13°
FriPartly cloudy30°14°
SatPartly cloudy27°14°

On this date: October 18

Today (forecast)
29° / 16°
Average for October 18
23° / 11°

High well above average · +6.0°C

  • Record high: 31.7° · 1959
  • Record low: 3.3° · 1965
  • One year ago: 18° / 10°

Every October 18 in history, coldest to hottest

▲ Daily highs▼ Daily lows

Dots show daily highs (top) and lows (bottom) for each October 18 on record (n = 87). Outlined dots are today's forecast.

Area we sample

Each city's history comes from one ERA5 grid cell, about 28 km across, shown by the dashed box. Near mountains or coasts, conditions can vary across the cell.

Location & data

Historical weather for Johannesburg is sampled from the ECMWF ERA5 reanalysis at 26.20°S, 28.04°E, with daily records since 1940.

Coordinates
26.20°S, 28.04°E
Time zone
Africa/Johannesburg
Period
1940–2026
Data source
ERA5 (ECMWF)

Last 30 days

19 of the last 31 days were warmer than the historical average for that date. Average difference: +0.3°C.

Each bar is one day, from morning low to afternoon high. Warm-colored bars are days whose mean ran above average; cool bars ran below. The dot inside the bar is the daily mean. The shaded band is the typical 10–90% range expected for that date. Average = the day's mean temperature averaged across every year of record (1940–2026) for that calendar date.

This date over the years

One dot per year, showing the mean temperature on this calendar date. Dots are warmer or cooler than the long-term average (dashed line); the shaded band is the typical 10–90% range, and the highlighted dot is today's forecast. Based on ERA5 reanalysis: modelled estimates, not station readings.

Weather by month

Average temperatures and rainfall for each month: a typical year, from the full record.

Climate overview

Johannesburg stands at 1,753 metres on the Highveld plateau of South Africa, with a subtropical highland climate (Köppen Cwb). The elevation keeps temperatures moderate year-round by African standards, but the strong seasonal contrast comes from rainfall rather than temperature: summers from October through April bring hot afternoons that build almost daily into intense thunderstorms, while winters from May through September are dry, sunny and cold at night.

The afternoon thunderstorm, fast-moving and accompanied by hail and lightning, is the signature weather event of the Highveld summer. Snow is extraordinarily rare at this latitude but not unheard of: notable falls were recorded in 1956, 1962, 1964 and 1981, and the 21st century has brought small but memorable events including June 2007 (up to 10 centimetres in southern suburbs), August 2012, and July 2023.

The warmest month is January, with typical afternoon highs of 24.4°C and nights around 14.2°C. The coolest month is June, when afternoons reach about 16.2°C and overnight lows sit around 2.2°C. Around 12 days a year dip below freezing.

The yearly total for Johannesburg comes to about 832 mm; monthly amounts range from 4 mm in July up to 148 mm in January.

Comparing the record's first decade with its most recent one, Johannesburg now averages 1.3°C warmer than it did in the 1940s. The year-by-year charts below trace that shift in detail.

Sources:en.wikipedia.orgbritannica.com

Climate graph (climograph)

January is the warmest month, June the coolest: a yearly swing of 11°C. Wettest month: January (~148 mm). Whole year averages ~832 mm of rain.

Bars = average monthly rainfall (right axis). Lines = average daily high and low (left axis). Average = each month's value averaged across every year of record (1940–2026).

Rainy days by month

About 91 rainy days a year: most in December (~16), fewest in July (almost none).

Bars = average number of days with ≥ 2 mm per month. Hover for the monthly rainfall total.

Monthly wind

Average daily peak wind at 10 m, by month.

Monthly solar energy

Average daily incoming solar energy in megajoules per square metre: the record's own proxy for how sunny the month is.

Johannesburg month by month: what to expect

Typical conditions for each month, averaged across the full record (since 1940). Daylight is the time from sunrise to sunset. Record high/low are the most extreme values in the ERA5 dataset (modelled since 1940), so they can differ from official weather-station readings.

MonthAvg highAvg lowRainRainy daysDaylightRecord highRecord low
January24.4°14.2°148 mm1613.5 h36.0° (2016)6.9° (1961)
February23.9°13.9°123 mm1312.9 h32.0° (1984)4.2° (1940)
March22.9°12.5°95 mm1112.2 h31.9° (2024)3.5° (1974)
April20.8°9.4°59 mm711.4 h28.5° (2017)−0.2° (1972)
May18.6°5.6°21 mm310.7 h26.9° (2012)−3.8° (2007)
June16.2°2.2°9 mm110.4 h24.5° (2014)−5.5° (1955)
July16.5°2.0°4 mm010.5 h25.0° (2002)−6.3° (1990)
August19.4°4.7°10 mm111.1 h29.0° (1941)−5.2° (1972)
September23.0°8.7°26 mm311.9 h31.5° (2018)−1.5° (2018)
October24.1°11.1°77 mm812.6 h33.6° (2011)0.1° (1965)
November23.9°12.4°116 mm1213.3 h33.4° (2015)2.5° (1976)
December24.2°13.6°146 mm1613.6 h33.8° (2015)4.3° (1970)

How it's changed

Year-by-year signals from 1940 to today.

Climate stripes

Annual mean shifted from 1940–1949 to 2016–2025 by +1.3°C.

Each vertical stripe is one year. Color encodes how much that year's annual mean differed from the long-term average. Average = each year's annual mean compared to the average of all years (1940–2026). cooler ← → warmer

Annual mean temperature

Long-term trend: +0.15°C per decade.

One point per year, showing the temperature averaged across the whole year. The dashed line is the least-squares long-term trend. Based on ERA5 reanalysis: modelled estimates, not station readings.

Seasonal warming

Dec–Feb is warming fastest: +0.19°C per decade.

Each faint line is one three-month period's average per year; the bold dashed line is its long-term trend. Different parts of the year often warm at different rates. Based on ERA5 reanalysis: modelled estimates, not station readings.

Hot days vs frost days

Days ≥ 30°C per year: 4.6 early in the record → 11.2 recently. Frost days: 10 → 12.

Thin lines are raw yearly counts; thick lines are the smoothed trend that removes year-to-year noise. The hot-day threshold is auto-picked per city so the line actually moves. Average = a centered 5-year rolling average to smooth weather noise.

Yearly hot & cold extremes

All-time high in 2016, all-time low in 1990: 36.0°C / −6.3°C.

One point per year: the single hottest and coldest day recorded that year.

Annual rainfall

~832 mm/year on average. Last decade: −1% vs that average. Long-term trend: −7 mm per decade.

One bar per year of total rainfall. Dashed line is the long-term average. Average = the average annual rainfall across every year of record (1940–2026).

Day-by-day grid

Each tiny square is one calendar day across the full record, about 30,000 days per city. Use the mode switch above the chart: Anomaly colors each day by how far it ran from the historical average for that date (red = warmer, blue = cooler), Daily mean temp shows the absolute mean temperature for the day (useful to see seasons and heatwaves), and Precipitation shows daily rainfall (useful to spot wet/dry seasons and droughts). Average = the long-term average for that calendar date (1940–2026).

Frequently asked questions about Johannesburg

Which is the warmest month in Johannesburg?
On long-term average, the warmest month in Johannesburg is January (mean daily temperature of about 18.9°C) and the coolest is June (about 8.3°C).
How does today's temperature in Johannesburg compare to the historical average?
On October 18, 2026, Johannesburg is forecast to reach a high of 29.4°C and a low of 16.3°C. The long-term average for this date (the full record since 1940) is a high of 23.4°C and a low of 10.7°C, so today's high is 6.0°C warmer than that average.
How much has Johannesburg warmed since 1940?
Comparing the first decade of the record (1940–1949) with the most recent (2016–2025), the annual mean temperature in Johannesburg is about 1.3°C warmer.
How much does it rain in Johannesburg?
Johannesburg receives about 832 mm of precipitation per year on long-term average, with January typically the wettest month.
What is the average temperature in Johannesburg?
Over the full record (since 1940), the annual mean temperature in Johannesburg is about 14.8°C. The warmest month is January and the coolest is June.
What are the average temperatures in Johannesburg by month?
Average daily highs and lows for each month in Johannesburg (°C, full record since 1940): January 24°/14°, February 24°/14°, March 23°/12°, April 21°/9°, May 19°/6°, June 16°/2°, July 16°/2°, August 19°/5°, September 23°/9°, October 24°/11°, November 24°/12°, December 24°/14°.
What is the weather like in Johannesburg in summer?
In summer, December through February, Johannesburg is wet and pleasantly warm. Expect 24°C by day and 14°C at night, with January the warmest month. Rain is steady at around 139 mm a month, spread over roughly 15 days. No season is wetter.
What is the weather like in Johannesburg in winter?
In winter, June through August, Johannesburg is dry and fairly mild. Daytime highs sit at 16–19°C and nights at 2–5°C; July is the coldest month. Hardly any rain falls.
What is the weather like in Johannesburg in spring?
Spring in Johannesburg (September to November) is pleasantly warm. Afternoons run 23–24°C and nights 9–12°C; October is the warmest month. Rain rises from 26 mm on 3 days in September to 116 mm on 12 days in November.
What is the weather like in Johannesburg in autumn?
Autumn in Johannesburg (March to May) is mild. It cools from 23°C by day and 12°C at night in March to 19°C and 6°C in May. Rain eases through the season: 11 rainy days and 95 mm in March, 3 days and 21 mm in May.
How many days a year does it rain in Johannesburg?
On long-term average, Johannesburg has about 91 days a year with at least 2 mm of rain or snow. The annual total is roughly 832 mm.

Weather in nearby cities