Mid-winter temperatures have reached 22C in Christchurch, near the city record.
The July record for Christchurch was 22.4C in 2012.
It has also been one of the hottest July days on record for Timaru, Metservice reports.
The temperature reached 21.7C, its second-warmest July temperature of all time in the town.
"After the very cold weather they've had around about a week ago, it's quite a change," MetService meteorologist Peter Little said.
It's not the first time Timaru has neared 20C in July. Last year two days, July 3 and 6, came close to the mark.
Little said the balmy temperatures were due to the "very, very strong" northwesterly flow over the country.
"There's a lot of moisture being dropped on the West Coast, and as the wind descends on the eastern side of the [Southern] Alps, it warms up."
The cities could expect temperatures up to 20C to last until Sunday, when a southerly change would bring cooler weather, Little said.
Niwa preliminary data shows today was one of the warmest July days on record on the South Island's east coast.
Christchurch - 22.0 degrees Celsius at Kyle St. The fourth-warmest day recorded in July for all Christchurch stations (the Airport, Christchurch Gardens and the Niwa building in Riccarton).
Timaru - MetService temperature from their website was 21.7C, its second-warmest July temperature all-time. Records go back to 1885 there.
Oamaru - MetService registered 19.4C which is equal to seventh warmest all-time. The warmest July temperature recorded there is 20.0C.
Dunedin City (Musselburgh) - 18.8C is the fourth-highest July temperature on record since 1947 - 20.0C is the warmest.