今天发现一个很有意思的现象。
在一个群里,有位已经离开北京的小伙伴说:「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 morning,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.
开门发生在过去,但是「现在」依然在时间段中,意味着门依然开着。
明白了伐?
---
我将会在4月1日晚8点进行我的第二场知乎Live:《一小时掌握全部16种英语时态》,我会深入讲解各个时态要点和区别,感兴趣可以扫描下方二维码报名: