一、意义上的区别
一般过去时态只是单纯地表示过去某一时间发生过的动作或者存在的状态, 和现在没有任何联系, 只着眼于过去.
现在完成时态重点强调与现在的联系, 表示过去发生的动作对现在造成的影响和结果, 属于现在时的范畴. 试比较下列例句:

My father has bought a new car .

我爸爸买了一辆新车.

强调在过去的某一时间发生的动作"买" , 对现在造成的结果是" 他有了一辆新车".
My father bought a new car last Sunday .

我爸爸上个周日买了一辆新车. 强调上个周日"买" 这个动作发生过, 与爸爸现在是否有车无关. 也许这辆车是给别人的.

二、时间状语的区别
一般过去时态常用非延续性动词,如borrow, buy, come, go, leave, start, die, finish, become等。现在完成时态可表示持续到现在的动作或状态,与时间段连用时动词一般是延续性的,如keep, have, live, teach, learn, work, study, know, be等。 如:
He joined the League three years ago .(join是短暂动词)
He has been in the League for three years.(be in表状态,在团内的状态可延续)
He has been a League member for three years. (是团员的状态可延续)
三、用法上的区别
现在完成时态的用法表示一个过去发生并结束的动作对现在产生的结果和影响。这一类情况可以细致分为下述两种情况。
1.表示开始于过去的动作刚刚结束。常和just,now,already,yet,not…yet等连用。
Li Ming has just turned off the light.

李明刚刚把灯关上。(说明现在灯关上了)

I've finished my homework now.

现在我已经做完作业了。(说明可以交作业或做别的了)

2..表示过去动作的结果,现在仍残留着。一般不用时间状语。
I have lost my pen.

我把笔丢了。(说明过去某时丢的,现在我还没找到这支笔)

小测试:
1..——When _____ you _____ to learn to skate? ----Five years ago.
A. do; start B. will; start C. had; start D. did; start
2.——Hasn’t Alice come yet? ----No, and I _____ for her for about 2 hours.
A. wait B. waited C. have waited D. had waited
3.Her grandpa _______ in 2000. Though he ______ for about ten years, she still misses him. A. dies; has died B. died; has been dead C. died; was dead D. died; has died
答案:1.D 2.C 3.B