Two simples rules, that explain it all, I believe:
First the bad news: Das present perfect richtig zu verwenden scheint mir eins der letzten Grammatikgebiete der englischen Sprache, das ein Deutscher beherrscht. Sogar diejenige Deutsche, die tagtaeglich Englisch bei ihrer Aktivitaeten in internationeler Finanz, Politik, usw. benutzen, verdeutschifizieren (das ist bestimmt kein Wort) oft ihr sonst sehr gutes Englisch, indem sie the present perfect inkorrekt benutzen. Der Grund dafuer scheint mir zu sein, dass ein Deutscher sich daran gewoehnen muss, Zeit auf einer Weise aufzuteilen, woran er nicht gewoehnt ist - und dass diese Weise ihm wohl als irgendwie kuenstlich und unnoetig scheint. Wenn das Euch so scheint, wisst Ihr wie 90% der deutschen Grammatik mir scheint. 
Now the good news: Meiner Erfahrung nach gibt es kaum Schwierigkeiten, wenn ein Deutschsprachiger im Englischen the past verwendet, wenn er im Deutschen das Imperfekt verwendet haette.
Dazu gibt es viele englische Saetze, wo man abwechselnd the past oder the present perfect verwenden koennte - ohne die Bedeutung zu aendern und ohne dass der Satz sich komisch anhoert.
Ausserdem, bei den meisten Saetzen, vielleicht allen, wo ein Nichtmuttersprachler (sagt mal, ist das ein Wort, ueberhaupt?) falsch zwischen the past und the present perfect waehlt, kommen keine grosse Misverstaendnisse vor.
Aber, wenn man nach muttersprachlicher Perfektion strebt, und will nicht, dass seine Saetze sich bei Muttersprachlern komisch anhoeren, und will nicht, dass ich sagen kann: “Aha, das hat ein Deutscher geschrieben.” schlage ich zwei Regeln vor, die meiner Erfahrung nach, das Problem loesen:
Der erste Regel: Wenn man in einem Satz ein Wort oder Phrase, das/die die Vergangenheit bezeichnet, verwendet ODER VERWENDEN KOENNTE, darf man nicht the present perfect benutzen. Worte oder Phrasen, die die Vergangenheit bezeichnen, sind, unter anderen: yesterday, last hour, last week, last month, an hour ago, two years ago, usw., usw. Anders ausgedrueckt, diese sind Worte und Phrasen, die zeigen, dass DER SPRECHER einen Unterschied zwischen “jetzt” und “damals” macht.
Beispiele:
richtig: I ate pizza yesterday.
falsch: I have eaten pizza yesterday.
richtig: I ate pizza an hour ago.
falsch: I have eaten pizza an hour ago.
richtig: I ate pizza last week.
falsch: I have eaten pizza last week.
richtig: Some people think aliens from outer space visited the earth two thousand years ago.
falsch: Some people think aliens from outspace have visited the earth two thousand years ago.
richtig: I finished my pizza a nano-second ago.
falsch: I have finished my pizza a nano-second ago.
richtig: I did not eat pizza in my last life - I was the King of the Zulus, you know.
falsch: I have not eaten pizza in my last life - I was the King of the Zulus, you know.
Natuerlich kann eine Aktion in einer vorigen Zeitperiode aber in auch in einer jetztigen Zeitperiode geschehen. Zum Beispiel. “This happened yesterday. It is Wednesday. Therefore it has happened this week.” Auch moeglich, wie oben erwaehnt: “This happened yesterday. It is Wednesday. Therefore it happened this week.” Aber, nicht moeglich waere: “This has happened yesterday. It is Wednesday. Therefore it has happened (or: it happened)this week.”
Unter Muttersprachlern kann durch die Verwendung von the present perfect statt the past Auskunft ohne weiteres signalisiert werden, die ein Deutscher wohl nicht merken wuerde. Wenn ich zum Beispiel in einem Internet Chatroom lese, wo jemand, den ich schon als Muttersprachler erkenne, schreibt, “I have eaten pizza for breakfast this morning.” so vermute ich, dass es immer noch morning bei ihm sein muss. Wenn es bei mir spaet am Abend ist, muss er weit weg sein.
Der zweite Regel: The present perfect in der Uebersetzung nie verwenden, wenn man auf deutsch das Wort “seit” und den Praesenzfall benutzt. Natuerlich handelt sich diese Frage nicht um die Wahl zwischen the past und the present perfect, sondern um die Wahl zwischen the present und the present perfect. Trotzdem muss dieses erwaehnt werden, um die Frage der Verwendung von the present perfect vollkommen anzusprechen. Also, noch einmal: Wenn man das Wort “seit” auf Deutsch benutzt haette (und das englische Wort “since” verwenden will), sollen Alarmglocken im Kopf schlagen. Wenn man dann the present auf Englisch benutzt, wird es sicherlich falsch sein. “Ich wohne hier seit drei Jahre” darf man nicht mit “I live here since three years” uebersetzen. (Auch nicht mit “I am living here since three years” falls jemand hofft um das Problem mit DER Konstruktion herumzschleichen.) The present perfect muss verwendet werden: “I have lived here for three years.” Freilich ist “I live here since three years” verstaendlich, aber es klingt sehr seltsam.
So now you know. Go forth and sin no more.