你非常可能会犯的一个时态错误

你非常可能会犯的一个时态错误

今天发现一个很有意思的现象。

在一个群里,有位已经离开北京的小伙伴说:「I have lived in Beijing for six years.」这位小伙伴现在在成都生活。我在群里问了一下,其余的人都觉得这样说是没有问题的。所以,这促成了我写这篇帖子。

在上面那个情景中,用「现在完成时」是不正确的,应该用「一般过去时」,正确的说法应该是:

I lived in Beijing for six years.

再举一个例子,如果现在是下午,你说「I have shaved this morning.」这会给人一种很别扭的感觉,正确的说法应该是「I shaved this morning.」

如果从语感上你不能觉察出异同,那么请熟记下面的规则:

现在完成时默认你还此刻依然处于其中的时间段。因此,当句子中有某些时间状语时,比如this morning,this month,tonight,for XX years等,句子既可以用一般过去时,也可以用现在完成时,但是内涵不同。

句子用一般过去时,表明时间已经过去了,和「现在」无关。
句子用现在完成时,暗示时间还没有过去,「现在」还在这个时间段内。

按照此思路,我们就明白了上面两句话为什么不正确:

I have lived in Beijing for six years.
暗示「现在」在这六年中,也就是说我现在依然在北京居住。

I have shaved this morning.
暗示「现在」依然在早上,所以这句话在下午或者晚上说听起来很奇怪(对于老外而言会很奇怪,你可以去问问他们哦~)。

比较下面两个句子:

I saw her this afternoon.
时间已经不在下午了。

I have seen her this afternoon.
时间还在下午。

从这里,我们也可以引申出一个区别:

I opened the door.
开门发生在过去,至于门现在开没开着不好说。

I have opened the door.
开门发生在过去,但是「现在」依然在时间段中,意味着门依然开着。

明白了伐?

如果想以一种不同的理解深入掌握英语全部的16种时态,请参加我的知乎Live:一小时掌握英语全部16种时态
编辑于 2017-03-20

文章被以下专栏收录