The east coast of the South Island has been basking in some of the warmest July temperatures for years.
Christchurch, Dunedin and Timaru hit 20 degrees today, and Ashburton was just over 21 degrees.
MetService meteorologist Angus Hines said temperatures didn't quite break records today, but were very close.
He said the temperature in Ashburton reached 21.6C, while the record temperature set in 1998 for this time of the year was 21.9C.
Dunedin (Musselburgh) just observed its warmest July temp since records began in 1947: 20.3˚C— NIWA Weather (@NiwaWeather) July 3, 2019
Other near-records Wednesday:
Lincoln 21.5˚C (2nd warmest July temp since 1881)
Winchmore 21.3˚C (3rd warmest July temp since 1927)
Cheviot 21.0˚C (3rd warmest July temp since 1983) pic.twitter.com/CqXh7MGkgn
Mr Hines said a number of factors had come together to create the conditions.
"Last week was pretty chilly but calm, so it's been a long time since we've had any cold air pushing up over the country.
"We started with a pretty ambient temperature early this week and through the day today we've had a strong north to northwest flow across the country, which people in Christchurch will be familiar with as producing really warm temperatures."
He said temperatures were about 10C warmer than average today along the east coast of the South Island.
Mr Hines said temperatures would also be unusually warm overnight in parts of the North Island, with Whakatane and Tauranga only dropping to 14 overnight, about 10 degrees higher than average.
The warm weather won't last, with temperatures dropping to a high of 12 in Christchurch and 11 in Dunedin tomorrow.