句子中如有过去时的时间副词(如 yesterday, last, week, in 1960)时, 不能使用现在完成时,要用过去时
(错)Tom has written a letter to his parents last night. (对)Tom wrote a letter to his parents last night.
He has gone to Shanghai.
他已经去上海了 [也许刚动身出发,也许已经到了,也许还在 路上,反正他人不在这里] He has been in Shanghai for 10 years.
他呆在上海迄今为止已经10年了 [现在还在上海没有离开呢]
含由辨
义时析
上 的 差 别
态 导 致 的
He has learned English since 2001. --从2001年开始学的,现在还在继续学着呢
现在完成时
past
一般过去时
now
future
一般过去时表示的是纯粹在过去发生的事情
现在完成时表示的是在过去某个时间开始并持续到现在的动作/状态,或者发生在 过去却对现在造成的影响
现在完成时与一般过去时的比较
这 些 句 子
He lived in Shanghai for 10 years.
以前他在上海住过10年 [现在不在上海了]
现在完成时和现在完成进行时的区别
• 共同点:都可以表示动作发生在过去持续到现在并将有可 能继续下去
• 区别: • 1. 现在完成时表已完成用法时常常不与表示一段时间的
状语连用,现在完成进行时强调动作的持续性
注意:并非有for 作为时间状语的句子都用现在完成时
I worked here for more than twenty years. (我现在已不在这里工作。)