Sri Lanka is very much a tropical country, with distinct dry and wet seasons and a generally warm and humid climate. This is caused by the island’s equatorial tropical latitude and the influence of the northeast and southwest monsoons, in which alternating wet/dry periods are caused by the seasonal reversal of prevailing winds.
Elevation and rainfall are the two key factors in Sri Lanka’s daily and seasonal climate variations, and your experience of Sri Lanka’s different seasons will depend largely on your location on the island. It’s never really a bad time weather-wise to visit Sri Lanka; you just need to know which side of the island to head to.
The southwest monsoon brings rain and winds to Sri Lanka’s southwestern regions between May and September, and a dry season between December and March. The northeast monsoon brings a dry season to the northeastern regions between May and September, and rain and winds between October and January. The crossover period from October to mid-November can see rain and thunderstorms across the whole island. Despite the seasons, the humid coastal plains of the southwest (Wet Zone) receive much more reliable rainfall that the more arid plains of the north, east and south (Dry Zone).
The driest and best months to visit are generally Dec-Mar for the southwest and hill country, and Apr-Sep for the northeast and ancient cities.
There is negligible variance is annual temperature ranges in all but the Central Highlands region, where elevation moderates the tropical climate and you will experience milder conditions and wider daily and yearly temperature ranges.
In Colombo, average daily temperatures range from a minimum of 22.3°C (72°F) to a maximum of 30.9°C (88°F) in January, to a minimum of 25.5°C (78°F) to a maximum of 30.4°C (87°F) in June.
In Kandy, average daily temperatures range from a minimum of 18.4°C (65°F) to a maximum of 28.3°C (83°F) in January, to a minimum of 21.4°C (71°F) to a maximum of 28.4°C (83°F) in June.
In Anuradhapura in the central-north, average daily temperatures range from a minimum of 20.9°C (°F) to a maximum of 29.6°C (°F) in January, to a minimum of 24.5°C (°F) to a maximum of 34.3°C (°F) in April.
In Nuwara Eliya in the Central Highlands, average daily temperatures range from a minimum of 9°C (48°F) to a maximum of 20°C (68°F) in January, to a minimum of 11.4°C (53°F) to a maximum of 22.8°C (73°F) in April.