Present Perfect сложно понять обычному русскоговорящему человеку, так как в русском языке такого аспекта (Perfect) нет. Это время может по-русски переводиться как настоящим (I have lived here for 5 years — Я живу тут 5 лет/прожил 5 лет), так и прошедшим (I have been in Greece – Я был Греции, I have lost my keys – Я потерял ключи). Почему так?
Дословно Present Perfect переводится как «имею сделанным». Не просто «потерял», а «имею потерянным», не просто «жил», а «имею прожившим», не просто «был», а «имею побывавшим». Общее здесь – что мы имеем это все на текущий момент. Неважно, когда именно произошло событие (и происходит ли оно сейчас), ты смотришь на него с перспективы текущего момента, не переносясь назад в прошлое. Ты имеешь его результат или период его длительности вплоть до настоящего момента. Ты подчеркиваешь взгляд из текущего момента на прошлое.
Так что неважно, было ли это когда-то давно, длится ли это до сих пор или закончилось. Аспект Present Perfect подводит итог на данный момент.
Это все еще длится? Ок, говори, что вот сейчас мы имеем, что длится это столько-то. Например, I have known him for 5 years. То есть «к текущему моменту я его знаю уже 5 лет». Если ты просто хочешь сказать о том факте, что «ты его знаешь», не уточняя, сколько лет это уже длится, то есть не подводя итоги на текущий момент, то говори I know him.
А I have been in Greece означает, что ты в принципе был в Греции, неважно, когда именно. Главное, что сейчас ты имеешь опыт пребывания в Греции, о чем дословно и сообщаешь («я имею побывавшим в Греции»).
Если ты говоришь, в каком именно году ты был в Греции, Perfect не подходит. Потому что указание конкретного времени переносит нас назад. Тут подходит Past Simple. Например I was in Greece in 2000. Указание на конкретное время — 2000 год — означает, что ты переводишь точку рассмотрения событий в прошлое, переносишься в прошлый момент из текущего момента.
Аспект Present Perfect немного напоминает совершенный вид в русском языке (что-то «сделал», в отличие от «делал» или «делаю»).
А теперь постараемся выделить наиболее типичные контексты употребления Present Perfect. Как сказано, действия могут быть как незаконченными, так и законченными.
1 Незаконченные действия с Present Perfect
В этом случае ты обычно сообщаешь, сколько времени длится что-то (либо с какого момента since, либо в течение — for — скольких лет, месяцев, дней и т.п. ). Действие началось в прошлом и длится по текущий момент (и, возможно, продлится еще). Вообще то для такого случая идеально подходит время Present Perfect Continuous, но есть глаголы, которые в Continuous не употребляются. Это статические глаголы (state verbs).
Статические глаголы – know, love, like, believe и т.п.- означают состояние, а не действие.
Но также есть еще глаголы такого типа как live, teach, study, work — они означают то, что может длиться изо дня в день: жить, учиться, работать. Это почти что состояния. Сказать я прожил тут 5 лет — почти то же самое, что я живу тут пять лет. Поэтому все эти глаголы (статические и вот эти вот) могут означать незаконченное действие и переводиться настоящим, хоть и стоят в Present Perfect.