Kuala Lumpur weather by month — averages, rainfall & climate trends
Straddling the equator in a valley sheltered by hill ranges, Kuala Lumpur runs the world's fullest tropical rainforest schedule — heat and downpours every month, with the Klang Valley ranking among Earth's most thunderstorm-prone spots. 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 Kuala Lumpur, Malaysia.
Today vs average
−0.8°Cabout average
How it’s changed
Right now
What it's doing today vs the historical average for this date.Right now
29.7°
On this date — July 20
About average
- Record high: 34.6° · 2014
- Record low: 21.4° · 1975
- One year ago: 33.7°
Every July 20 in history — coldest to hottest
Dots show daily highs (top) and lows (bottom) for each July 20 on record (n = 86). 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 Kuala Lumpur is sampled from the ECMWF ERA5 reanalysis at 3.14°N, 101.69°E, with daily records since 1940.
- Coordinates
- 3.14°N, 101.69°E
- Time zone
- Asia/Kuala Lumpur
- Period
- 1940–2026
- Data source
- ERA5 (ECMWF)
Last 30 days
29 of the last 30 days were warmer than the historical average for that date. Average difference: +1.7°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
Kuala Lumpur sits near the Equator in the Klang Valley, protected to the east by the Titiwangsa Range and to the west from strong open-ocean winds by Sumatra. Its tropical rainforest climate (Köppen Af) means temperatures are uniformly hot year-round and rain falls in every month, though the northeast monsoon from October to March brings the most sustained heavy rainfall. The Klang Valley is one of the most thunderstorm-prone areas on Earth, with intense convective storms a near-daily occurrence in the afternoon or evening.
The surrounding terrain channels moisture and can concentrate downpours that frequently trigger flash flooding in the urban core, a recurring challenge as the city has expanded rapidly. During the drier months, the region is regularly affected by a haze produced by forest and peatland fires burning across Sumatra and Borneo — prevailing winds carry the smoke into the Klang Valley, at times severely reducing air quality and visibility for weeks.
The warmest month is May, with a daily mean around 27.1°C and typical afternoon highs of 31.7°C. The coolest month is December, when daily means fall to about 25.9°C and overnight lows sit around 22.8°C.
The yearly total for Kuala Lumpur comes to about 2701 mm; monthly amounts range from 160 mm in June up to 321 mm in November.
The record here starts in 1940, and since then the annual mean in Kuala Lumpur has climbed 2.3°C from the first ten years to the last ten. Days above 30°C have grown noticeably more frequent — from around 125 a year in the first decade to about 340 in the last.
Climate graph (climograph)
May is the warmest month, December the coolest — a yearly swing of 1°C. Wettest month: November (~321 mm). Whole year averages ~2701 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.
Kuala Lumpur 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.
| Month | Avg high | Avg low | Rain | Daylight | Record high | Record low |
|---|---|---|---|---|---|---|
| January | 30.8° | 22.4° | 172 mm | 11.8 h | 36.2° (2005) | 18.2° (1943) |
| February | 31.7° | 22.6° | 160 mm | 11.9 h | 37.4° (2020) | 18.5° (1977) |
| March | 31.9° | 23.1° | 240 mm | 12.0 h | 37.8° (2016) | 19.1° (1946) |
| April | 31.8° | 23.6° | 273 mm | 12.1 h | 36.5° (1998) | 20.7° (1943) |
| May | 31.7° | 23.8° | 235 mm | 12.1 h | 36.4° (1963) | 20.5° (1943) |
| June | 31.4° | 23.4° | 160 mm | 12.2 h | 35.6° (2025) | 18.5° (1940) |
| July | 31.1° | 23.0° | 167 mm | 12.2 h | 34.8° (2014) | 19.6° (1982) |
| August | 31.0° | 23.0° | 199 mm | 12.1 h | 34.6° (2020) | 19.7° (1956) |
| September | 30.9° | 23.0° | 238 mm | 12.0 h | 35.2° (2019) | 20.3° (1959) |
| October | 30.9° | 23.1° | 287 mm | 11.9 h | 35.5° (2017) | 20.8° (1961) |
| November | 30.6° | 23.1° | 321 mm | 11.9 h | 34.5° (2023) | 20.0° (1948) |
| December | 30.4° | 22.8° | 249 mm | 11.8 h | 34.2° (1979) | 18.9° (1943) |
How it has changed
Year-by-year signals from 1940 to today.Climate stripes
Annual mean shifted from 1940–1949 to 2016–2025 by +2.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.28°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.29°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: 125.9 early in the record → 339.7 recently. Frost days: 0 → 0.
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 1943: 37.8°C / 18.2°C.
One point per year — the single hottest and coldest day recorded that year.
Annual rainfall
~2701 mm/year on average. Last decade ran +10% vs that average. Long-term trend: +90 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).