Surabaya climate

Surabaya is warmest in October, with average highs of 33 °C, and coldest in July, when nights average 24 °C. January is the wettest month (285 mm) and August the driest (6.5 mm). Figures are 1991–2020 climate normals.

Across a full year Surabaya averages 1,695 mm of rain and 365 days above 25 °C.

Indonesia · population 3,018,022 · 1991–2020 normals

  1. Jan 27°
  2. Feb 27°
  3. Mar 27°
  4. Apr 27°
  5. May 28°
  6. Jun 27°
  7. Jul 27°
  8. Aug 27°
  9. Sep 28°
  10. Oct 29°
  11. Nov 28°
  12. Dec 27°

Temperature below 0 °C to above 30 °C Rain band height is that month’s share of the wettest month

What to expectSurabaya through the year

Surabaya changes little through the year. Average daily highs stay between 31 and 33 °C, so no month stands out as a season in the way it would further from the equator.

Counted across a normal year, 365 days a year reach 25 °C, 240 of them reach 30 °C. The warmest reading in the 1991–2020 record is 36 °C, in December.

Rain is strongly seasonal. January averages 285 mm against 7 mm in August — 44 times as much. Planning around the dry months matters more here than planning around temperature.

The sea off Surabaya is warmest in November at 30 °C and coldest in August at 28 °C. Sea temperature lags the air by a month or two, which is why late summer swims warmer than early summer at the same air temperature.

Month by month

Month Avg high Rainfall Cloud
January 29.4 °C 285 mm 89 %
February 29.4 °C 263 mm 90 %
March 29.8 °C 262 mm 82 %
April 30.1 °C 185 mm 75 %
May 30.5 °C 86 mm 58 %
June 30.4 °C 50 mm 51 %
July 30.6 °C 23 mm 46 %
August 31.4 °C 7 mm 44 %
September 32.7 °C 19 mm 49 %
October 32.9 °C 70 mm 61 %
November 31.4 °C 176 mm 77 %
December 29.9 °C 271 mm 88 %

Temperature month by month

Month Avg highAvg lowMeanRecord highRecord lowDays above 25 °CDays above 30 °CDays below 0 °C
January 29.4 °C24.8 °C26.6 °C32.9 °C23.4 °C3190
February 29.4 °C24.8 °C26.5 °C32.0 °C23.5 °C2870
March 29.8 °C25.0 °C26.9 °C32.2 °C23.2 °C31140
April 30.1 °C25.2 °C27.3 °C32.1 °C23.3 °C30170
May 30.5 °C25.1 °C27.5 °C32.4 °C21.6 °C31230
June 30.4 °C24.5 °C27.3 °C32.8 °C20.9 °C30200
July 30.6 °C23.9 °C27.1 °C32.5 °C20.6 °C31240
August 31.4 °C23.9 °C27.5 °C33.3 °C20.5 °C31300
September 32.7 °C24.4 °C28.3 °C34.9 °C21.2 °C30290
October 32.9 °C25.3 °C28.7 °C36.2 °C21.8 °C31290
November 31.4 °C25.5 °C28.0 °C35.7 °C23.9 °C30230
December 29.9 °C25.1 °C27.0 °C36.4 °C23.6 °C31150

Rain, sun and wind month by month

Month RainfallWet daysDaylightCloud coverHumidityWindSea temp
January 285 mm2913 h/day89 %85 %14 km/h29.4 °C
February 263 mm2712 h/day90 %86 %14 km/h28.8 °C
March 262 mm2912 h/day82 %84 %11 km/h29.3 °C
April 185 mm2412 h/day75 %83 %9.7 km/h29.9 °C
May 86 mm1412 h/day58 %80 %11 km/h29.8 °C
June 50 mm912 h/day51 %77 %12 km/h29.1 °C
July 23 mm412 h/day46 %73 %14 km/h28.4 °C
August 7 mm112 h/day44 %68 %15 km/h28.1 °C
September 19 mm312 h/day49 %66 %14 km/h28.4 °C
October 70 mm1112 h/day61 %69 %13 km/h29.1 °C
November 176 mm2312 h/day77 %77 %11 km/h30.0 °C
December 271 mm2813 h/day88 %83 %11 km/h29.7 °C

How Surabaya compares

The same four figures for nearby destinations, so the numbers above have something to be read against. Summer high is the warmest month's average high; winter low is the coldest month's average low.

Destination Summer high Winter low Rain per year Days above 25 °C
Surabaya 33 °C 24 °C 1,695 mm 365
Pasuruan · Indonesia 32 °C 22 °C 1,710 mm 365
Singosari · Indonesia 30 °C 19 °C 2,303 mm 359
Batu · Indonesia 28 °C 18 °C 3,088 mm 313
Probolinggo · Indonesia 31 °C 24 °C 1,451 mm 365
Malang · Indonesia 30 °C 19 °C 2,341 mm 360
Kediri · Indonesia 31 °C 21 °C 2,075 mm 365

Where Surabaya ranks

Planning a trip? See the best time to visit Surabaya.

QuestionsCommon questions about Surabaya’s climate

When is the best time to visit Surabaya?

That depends on what you want, so the honest answer is a comparison rather than a single month. January, February, March sit closest to 20 °C on average, October is the warmest month and August the driest. The month-by-month table above has the full picture.

How hot does Surabaya get?

In October, the warmest month, daily highs average 33 °C. About 240 days a year pass 30 °C. The highest value in the 1991–2020 record is 36 °C.

How cold does it get in winter?

Nights average 24 °C in July, the coldest month. Freezing nights are not part of a normal year here.

Which month is wettest in Surabaya?

January, averaging 285 mm over 29 days with rain. The driest month is August with 7 mm. The year as a whole averages 1,695 mm.

Are these figures a forecast?

No. They are 1991–2020 climate normals: the average of thirty years, which describes what a month is usually like in Surabaya rather than what any particular week will bring. Individual years can differ substantially from the normal.

Data sources and method

Normal period
1991–2020
Data point
-7.249°, 112.751° (the coordinates the reanalysis values are taken for)
Dataset version
era5-1991-2020-scores1.1
Last processed

Measured values come from ERA5 reanalysis and are reproduced unchanged. Calculated by us: monthly rankings, daylight hours, beach and comfort scores. Full formulas are on the methodology page.

Contains modified Copernicus Climate Change Service information 2026. Neither the European Commission nor ECMWF is responsible for any use that may be made of the Copernicus information or data it contains.