Настоящее: сущ/мест.+ have/has (not) + been + гл- ing I have been waiting for a bus for one hour! Я жду автобус уже час!
Прошедшее: сущ/мест.+ had (not) + been + гл- ing I had been waiting for a bus for one hour! Я ждал автобус час!
Будущее: сущ/мест.+ will (not) + have + been + гл- ing I will have been waiting for a bus for one hour! (К какому-то моменту) я буду ждать автобус час.
Когда используем? 1) когда интерисует время, как долго мы что-то делаем Sarah has been studying Spanish since 2019. Сара учит испанский с 2019 (до сих пор его учит)
2) когда делаем акцент на действии, нас интересует что происходило до момента нашей речи: You're so red! What have you been doing? - I have been running in the park. Ты такой красный! Что ты делал? - Я бегал в парке.