Shanghai: Annual Weather Averages. July is the hottest month in Shanghai with an average temperature of 29°C (84°F) and the coldest is January at 4°C (39°F) with the most daily sunshine hours at 8 in August. The wettest month is September with an average of 156mm of rain.