这个说来就比较繁杂了,首先你得了解现在完成时和一般过去时所表示的意思.
1.现在完成时(perfect tense)总是告诉我们关于现在的情况.
Tom has lost his key.表示的是Tom现在是没有钥匙的.我们考虑的不是过去丢钥匙的那个行为,而是那个行为导致Tom现在手上没有钥匙这个结果,就像是你钥匙丢了,你就说“I've lost my key”,这时你想的恐怕不是把钥匙丢了这个动作,而是你现在没有钥匙这个状态,因为它让你进不了屋.
2.而一般过去时(past simple)总是告诉我们关于过去的情况.
Tom lost his key.这个时候我们只知道Tom在过去某个时候丢掉了钥匙,而现在有没有找到钥匙我们不知道.实际上就是在陈述他在那个时候丢了钥匙这个事实.
综上来说,现在完成时是要提出一些新的信息,而一般过去时就是把过去的事实说出来.还有就是现在完成时是一个持续的时间段,从过去到现在的一段,而一般过去时是一个时间点.
3.举几个例子:
Jack grew a beard but now he has shaved it off.(那么他现在就没胡子了)
They went out after lunch and they've just come back.(那么他们现在回来了)
Shakespare wrote many plays.(陈述他过去写了许多戏剧的事实)
My sister is a writer.She has written many books.(她仍旧在写书,极有可能出版一本之类的)
4.至于你所提到与哪些词连用,有些是固定的.
比如in 1998,yesterday等等,这些具体的已经过去的时间,就用一般过去时,不用完成时.而before,since等等呢由于讲的是一个持续的状态,所以一般就用完成时态.
但也不尽然:
如:We've been waiting for an hour.
We waited for an hour.
差别其实很简单,第一句我们仍然还在等,第二句就是我们等了一个小时候就不等了,等这个动作已经完成了.
再来一句:Ian lives in London.He has lived there for ten years.
Ian lived in London for ten years.Now he lives in America.
时态不是绝对死的,是灵活的,只要你真正懂得这些时态是在说明什么样的意义后,也就不会犯难了,