“现在完成式” (Present perfect)
🔒 登录后可标记已读- 「我认识他没多久」和「我 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。
用法二:未完结的状态
表示从过去开始、现在还在持续的状态,常搭配 for、since、how 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: