ENGLISH

“现在完成式” (Present perfect)

首页 英语 语法 · B1 · B2
约 8 分钟· #B1
🔒 登录后可标记已读
  • 「我认识他没多久」和「我 2020 年认识他」,中文听起来差不多,英文却要分现在完成式和过去简单式。
  • have/has + 过去分词,说跟现在还有关联的过去动作或状态,共有三种用法。
  • 未完结时间段内的动作/人生经历(today/this year/ever/never)、未完结的持续状态(for/since)、过去动作对现在的影响(just/already/yet)。
  • 句子里一旦出现明确的过去时间点(yesterday、last week、in 1992),就该换回过去简单式,不能再用现在完成式。
  • B1 核心时态,是马来西亚华人最容易跟过去简单式搞混的语法点之一。

重点内容


基本结构

have / has + 过去分词(past participle)

  • 肯定:He's been to ten different countries.
  • 否定:I haven't seen her today.
  • 疑问:Have you ever dyed your hair?


用法一:未完结时间段内的动作

表示在还没结束的时间段(today / this week / this year / so far)内发生的事。

  • They've been on holiday twice this year. → 今年已经度假两次了。
  • We haven't had a lot of positive feedback so far. → 到目前为止,正面反馈不多。
  • I'm sure I've seen that film before. → 我确定我以前看过那部电影。

也包括人生经历(人生还没结束,所以是未完结时间段):

  • I've worked for six different companies. → 我在六家不同公司工作过。
  • He's never won a gold medal. → 他从来没有得过金牌。
  • Have you ever been to Australia? → 你去过澳大利亚吗?

📌 负面句常用 never,疑问句常用 ever



用法二:未完结的状态

表示从过去开始、现在还在持续的状态,常搭配 forsincehow long

  • She's wanted to be a police officer since she was a child. → 她从小就想当警察。
  • I haven't known him for very long. → 我认识他没多久。
  • How long have you had that phone? → 你这部手机用多久了?

📌 for + 时间段(for two years),since + 时间点(since 2020 / since I was a child)



用法三:过去动作对现在有影响

过去发生的事,结果现在还看得到

  • He's broken his leg so he can't go on holiday. → 他骨折了,所以不能去度假。
  • There's been an accident, so let's take a different route. → 出事故了,我们绕路走。

常搭配 just / recently / already / yet / still

  • We've recently started going to the gym. → 我们最近才开始去健身房。
  • She's already finished season one. → 她已经看完第一季了。
  • Have you checked your emails yet? → 你看过邮件了吗?


现在完成式 vs. 过去简单式

说清楚什么时候发生 → 用过去简单式

  • He broke his leg last week. → 上周骨折了(有明确时间)
  • We visited Russia in 1992. → 1992 年去了俄罗斯(已结束的时间段)
  • Before she retired, she worked in several countries. → 这段人生已经结束,用过去式

例句练习

英文中文
My phone's run out of battery. Can I use yours?我的手机没电了,可以借用你的吗?(过去动作影响现在)
Have you ever tried durian?你试过榴梿吗?(人生经历)
I've lived in KL since 2018.我从 2018 年开始住在吉隆坡。(持续状态)
She's already finished the project.她已经完成项目了。(搭配 already)
Have you done your homework yet?你功课做了吗?(搭配 yet)

常见错误

❌ I have seen her yesterday. ✅ I saw her yesterday. (有明确的过去时间词 yesterday,要用过去简单式,不用现在完成式)

❌ Have you ever went to Japan? ✅ Have you ever been to Japan? (have + 过去分词go 的过去分词是 been,不是 went

❌ I know him since 2020. ✅ I've known him since 2020. (从 2020 年延续到现在的状态,要用现在完成式)


Sources

Blog / Website:

  1. Present perfect – British Council
📝 语法点共 6 题
📝 常见错误辨析共 3 题