现在完成时与一般过去时

这两种形式都可以指向现在之前的事情。关键在于你如何呈现它:把它放在已经结束的过去场合,还是从现在出发谈经历、进展或结果?

把语法放进生活

你和新朋友聊旅行经历。

I have been to Lisbon. I went there last May.

第一句介绍经历,第二句把那次旅行定位在已经结束的过去时间。

搭好句子

看清句型结构。

句型结构与例句
经历have/has + past participleHave you ever worked abroad?
具体发生时间past verbI worked in Singapore in 2023.

知道什么时候用

真实情境中的用法。

01先判断时间范围

yesterday、last July、in 2020 等已结束的时间通常用一般过去时。时间范围一直延伸到现在时,可以用现在完成时。不能仅凭“对现在有影响”判断,因为一般过去时描述的事件也能造成现在的结果。

I lost my passport yesterday, so I cannot travel today.

02先说经历,再补细节

不指定某次场合、询问经历时,常用现在完成时。一旦追问某次旅行或某份工作的细节,对话自然会切换为一般过去时。这是观察视角改变,不是语法前后不一致。

Have you tried surfing? / Yes. I tried it in Bali. / Did you enjoy it?

03today 也可能对应不同视角

I have had three coffees today 统计今天截至现在喝了几杯;I had coffee with Mira today 描述今天某次已结束的见面。不能仅看到 today 就固定选一个时态,要判断是在累计截至现在的情况,还是叙述某次事件。

04英美用法差异

英式英语谈论带 just、already、yet 的最近事件时,常偏好现在完成时;美式英语也常用一般过去时。这两种用法都可能符合标准。但 yesterday 这样的明确已结束时间通常仍用一般过去时。

I have just eaten. / I just ate.

小地方,大不同

留意这些常见错误。

避免Have you seen him yesterday?
这样说Did you see him yesterday?

yesterday 指定已结束的过去场合。

避免I have went there twice.
这样说I have been there twice.

需要过去分词;谈论已完成的到访经历时,been 很自然。

轮到你了

试一试,看看是否理解。

先自己选择,再查看解释。答错也没关系,重要的是理解原因。

01选择描述指定且已结束旅行的句子。

查看答案与解析

I visited Rome in 2019.

in 2019 把旅行定位在已结束的过去时间。

02不指定某次旅行,询问截至现在的经历。

查看答案与解析

Have you ever travelled alone?

have 加过去分词可以询问截至现在的经历。

本课例句与讲解由 TenseQuest 编写。

延伸参考:British Council · Present perfect

发现问题?告诉我们。

把知识连接起来

接下来学什么。

现在完成时一般过去时旅行场景中的英语时态