В ЮАР около 20-ти климатических зон. На севере — саванна, на восточном побережье — зона субтропиков, на юге, вокруг Кейптауна — настоящее Средиземноморье.
Разница среднегодовых температур между разными районами довольно значительна. Например, среднемесячная температура в Дурбане составляет +24.4°С, а в Порт-Ноллоте +12.2°С.
Поскольку ЮАР расположена в южном полушарии, времена года противоположны сезонам северного полушария.
Лето приходится на период с октября по март, и температура колеблется в среднем между 15°С ночью и 35°С в полдень. Летом (с октября по апрель) температура воздуха в Йоханнесбурге 27 °С, в Кейптауне 28 °С, в Дурбане 29 °С, температура воды в Атлантическом и Индийском океанах 24—26 °С.
Зима длится с июня по август с температурой в пределах от 0°С или даже ниже по ночам (пустыня Калахари, Дракенсберг) до 20°С в полдень.
Весна (август - сентябрь) и осень (апрель - май) короткие.
Лучшее время для посещения ЮАР — с октября по апрель.
Несмотря на региональные различия, климат в ЮАР остается в основном ровным и мягким в течение всего года. В целом ЮАР - страна с сухим климатом и низким средним годовым уровнем осадков в размере 502 мм. Снегопады ограничены вершинами самых высоких гор. Однако есть сезонные различия в некоторых провинциях.
ЮАР занимает одно из ведущих мест в мире по количеству солнечных дней в году. Температура морской воды отличается в разных районах - от прохладной 12°С-17°С в зависимости от сезона в районе Кейптауна (Атлантическое побережье) до 21°С-26°С в Квазулу Натал (Дурбан - побережье Индийского океана).
Для Дурбана характерен субтропический климат с теплым влажным летом и мягкой зимой. Температура в Дурбане колеблется зимой от 11 °С до 23 °C, летом — от 21 °С до 28 °C. Рекордно низкая за весь период наблюдений зимняя температура — 3 °С, самая высокая летняя — 40 °С.