WeatherJourney.com

Johannesburg weather by month — averages, rainfall & climate trends

Perched high on the Highveld plateau, Johannesburg is one of the highest major cities in Africa — 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. Average temperatures and rainfall by month, a climate graph, today's conditions versus the long-term average, and how the climate has shifted since 1940 — all on one page for Johannesburg, South Africa.

Right now

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

Right now

10.6°

feels like
27%humidity
-8°dew point
3 km/hfrom SW
sunrise06:53sunset17:35day length10h 42m
TodayMostly clear20°
MonMostly clear20°
TueMostly clear21°
WedClear20°
ThuPartly cloudy19°
FriClear19°
SatMostly clear17°

On this date — July 19

Today (forecast)
20° /
Average for July 19
17° /

Warmer than usual · 2.9°C above the average high

  • Record high: 22.6° · 2024
  • Record low: -5.4° · 1995
  • One year ago: 16.9°

Every July 19 in history — coldest to hottest

Daily highsDaily lows

Dots show daily highs (top) and lows (bottom) for each July 19 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

29 of the last 31 days were warmer than the historical average for that date. Average difference: +2.5°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 — 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 — what a typical year looks like, 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 often bitterly 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 a daily mean around 18.9°C and typical afternoon highs of 24.4°C. The coolest month is June, when daily means fall to about 8.3°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 above 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).

Monthly wind

Average daily peak wind at 10 m, by month.

Monthly solar energy

Average daily incoming solar energy in megajoules per square metre — a measured 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 lowRainDaylightRecord highRecord low
January24.4°14.2°148 mm13.5 h36.0° (2016)6.9° (1961)
February23.9°13.9°123 mm12.9 h32.0° (1984)4.2° (1940)
March22.9°12.5°95 mm12.2 h31.9° (2024)3.5° (1974)
April20.8°9.4°59 mm11.4 h28.5° (2017)-0.2° (1972)
May18.6°5.6°21 mm10.7 h26.9° (2012)-3.8° (2007)
June16.2°2.2°9 mm10.4 h24.5° (2014)-5.5° (1955)
July16.5°2.0°4 mm10.5 h25.0° (2002)-6.3° (1990)
August19.4°4.7°10 mm11.1 h29.0° (1941)-5.2° (1972)
September23.0°8.7°26 mm11.9 h31.5° (2018)-1.5° (2018)
October24.1°11.1°77 mm12.6 h33.6° (2011)0.1° (1965)
November23.9°12.4°116 mm13.3 h33.4° (2015)2.5° (1976)
December24.2°13.6°146 mm13.6 h33.8° (2015)4.3° (1970)

How it has 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 — 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 ran −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 — ~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).

Johannesburg — Frequently asked questions

Which is the warmest month in Johannesburg?
On long-term average, the warmest month in Johannesburg is January (mean 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 2026-07-19, Johannesburg is forecast to reach a high of 19.6°C and a low of 6.8°C. The long-term average for this date (the full record since 1940) is a high of 16.7°C and a low of 1.8°C — today's high is 2.9°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°.
How many days a year does it rain in Johannesburg?
On long-term average, Johannesburg has about 118 days a year with measurable rain, totalling roughly 832 mm.

Weather in nearby cities