Johannesburg weather is characterized by a subtropical highland climate, with warm, rainy summers from October to April and mild, dry winters from May to September. The city often experiences afternoon thunderstorms during the summer months, contributing to its annual rainfall.