现在完成时将过去的动作或情况与现在联系起来。在《"I have visited Los Angeles,"》中,这段经历以前就发生过,但具体时间并不是重点。在 "I have lived here for 2 years," 中,这种情况从过去开始,现在仍在继续。
这种联系使得现在完成时不同于一般过去时。学习者常常知道如何形成两种时态,但在选择时仍然犹豫不决。本指南解释了主要用途、时间表达、问题形式和常见错误。有关较大系统的概述,请参阅 English verb tenses 指南。在查看辅助工具和完整示例时,English grammar rules 和 sentence structure 上的参考文献也很有用。
如何形成现在完成时
使用 主语 + "have" 或 "has" + 过去分词。
- "I have finished the exercise."
- "You have improved."
- "She has studied English for 6 months."
- "The class has started."
将 "has" 与 "he," "she," "it," 和单数名词主语一起使用。将 "have" 与 "I," "you," "we," "they," 和复数主题一起使用。
规则过去分词通常以 "-ed" 结尾: "worked," "studied," 和 "completed." 不规则动词有特殊形式:
- "go" → "gone"
- "see" → "seen"
- "write" → "written"
- "speak" → "spoken"
- "take" → "taken"
当分词不同时,不要使用简单过去形式。 "She has went" 不正确;使用"She has gone."
否定句
将 "not" 放在 "have" 或 "has" 之后:
- "I have not finished."
- "He has not called."
- "They have not visited the museum."
常见的缩写是 "haven't" 和 "hasn't":
- "I haven't finished."
- "She hasn't arrived yet."
负面通常描述的是目前尚未发生但以后可能发生的事件。 "yet" 这个词通常出现在末尾:"We haven't received the schedule yet."
现在完成时的疑问句
将 "have" 或 "has" 移到主题之前:
- "Have you completed the form?"
- "Has the teacher explained the rule?"
- "Have they ever studied abroad?"
对于信息问题,请先放置疑问词:
- "How long have you lived in Los Angeles?"
- "What have you learned this week?"
- "Where has she gone?"
简短回答重复辅助:
- "Have you finished?" — "Yes, I have."
- "Has he called?" — "No, he hasn't."
请勿将 "do" 或 "did" 与现在完成时一起使用。 "Did you have finished?" 错误地组合了 2 个结构。
用途一:生活体验
使用现在完成时表示之前未指定时间的经历:
- "I have visited MOCA."
- "She has studied 3 languages."
- "Have you ever seen a professional hockey game?"
- "They have never traveled outside their country."
没有说明确切的时间,因为体验本身很重要。如果添加完成的过去时间,请使用简单过去时:
- 现在完成时:"I have visited MOCA."
- 一般过去时:"I visited MOCA last month."
"Ever" 表示人一生中的任何时间。 "Never" 的意思是“从现在开始”。关于经验的问题是有用的对话开头,因为它们会引发故事。
在Columbia West College (CWC),English Speaking Success (ESS) 使用连接问题等工具帮助学生自发地使用目标英语。像 "What is the most interesting place you have visited in Los Angeles?" 这样的现在完成时提示赋予语法个人目的,并自然地引出过去时态的后续细节。
{{lp-cta}}
用途 2:持续情况
使用现在完成时表示从过去开始并持续到现在的情况:
- "I have lived in Los Angeles for 2 years."
- "She has studied English since January."
- "They have known each other for a long time."
- "CWC has served international students for more than 30 years."
使用 "for" 的时间长度为:"for 2 weeks," "for several months," 或 "for a long time." 使用 "since" 的起点为:"since Monday," "since 2024," 或 "since I arrived."
静态动词如 "know," "believe," "own," 和 "understand" 通常在进行时使用现在完成时。动态活动可以使用现在完成时或现在完成进行时,具体取决于重点。
使用 3:最近的结果
当最近的动作有明显或重要的现在结果时使用现在完成时:
- "I have lost my key." 我现在没有。
- "She has broken her glasses." 眼镜现在损坏了。
- "The bus has arrived." 现在就在这里。
- "We have completed the project." 该项目现已准备就绪。
一般过去时可以将同一事件报告为已完成的历史事实。现在完成时强调现在的结果。
在美式英语中,说话者有时会使用简单过去时,而英式英语则倾向于使用现在完成时:"Did you eat yet?" 在美国非正式演讲中很常见。在仔细的标准书写中,"Have you eaten yet?"明确表达了未完成的"up to now"的含义。
用途 4:未完成的时间段
当时间段包含现在时时使用现在完成时:
- "I have had 2 classes today." 今天还没完。
- "She has practiced every day this week." 这周还在继续。
- "We have learned several patterns this semester." 这个学期仍在进行中。
如果句号已结束,则使用简单过去时:
- "I had 2 classes yesterday."
- "She practiced every day last week."
- "We learned several patterns last semester."
日历词本身并不能确定时态。演讲者对那个时期的看法很重要。上午10点,"I haven't had coffee this morning"很自然。晚上 8 点,"I didn't have coffee this morning" 将早上视为结束。
"Just," "Already," 和 "Yet"

"Just" 描述了最近的一个操作:
- "The class has just ended."
- "I have just sent the email."
"Already" 表示早于预期或之前:
- "She has already completed the assignment."
- "Have you already eaten?"
"Yet" 询问预期的操作是否已发生或声明未发生:
- "Have you finished yet?"
- "I haven't finished yet."
在常见的句子中间位置,"just" 和 "already" 位于 "have/has" 和过去分词之间。 "Yet" 通常出现在最后。
"Been" 和 "Gone"
"Been to" 描述了一次体验或一次完成的访问:
- "Maya has been to San Francisco." 她来了又回来了。
"Gone to" 表示该人仍在外出或旅行中:
- "Maya has gone to San Francisco." 她在那里或正在路上。
"Been in" 可以描述居住或存在:
- "Maya has been in San Francisco for a week."
上下文很重要,因为 "been" 在许多其他结构中也充当 "be" 的过去分词。
现在完成时与一般过去时
当时间未指定、未完成或与现在有关时,使用现在完成时。当说话者确定已完成的过去时间时,请使用简单过去时。
| 现在完美 | 一般过去时 |
|---|---|
| "I have taken that class." | "I took that class last year." |
| "She has met the advisor." | "She met the advisor on Monday." |
| "We have visited The Last Bookstore." | "We visited it during last month's activity." |
| "Have you eaten?" | "Did you eat before class?" |
请勿将现在完成时与完成的表达方式结合使用,例如 "yesterday," "last week," "in 2022," 或 "2 days ago."
现在完成时与现在完成进行时
现在完成进行时使用 have/has + ben + "-ing":
- "I have been studying for 2 hours."
- "It has been raining since noon."
一般现在完成时通常强调完成、数量或结果:
- "I have read 3 chapters."
连续形式强调持续时间或正在进行的活动:
- "I have been reading for 2 hours."
有些动词通常不以连续形式使用。说 "I have known her for 2 years," 而不是 "I have been knowing her for 2 years."
常见的现在完成时错误
不要使用简单过去形式代替过去分词:
- 错误:"I have saw that movie."
- 正确:"I have seen that movie."
不要添加完成时间表达式:
- 错误:"She has arrived yesterday."
- 正确:"She arrived yesterday."
不要省略辅助:
- 错误:"He finished already." 在非正式的美式英语中,这可以是可接受的简单过去时,但它不是现在完成时。
- 现在完成时:"He has already finished."
不要混淆 "for" 和 "since":
- "for 3 months"
- "since May"
最后,记住主题辅助协议:"she has," 但 "they have." subject-verb agreement 指南更广泛地解释了协议模式。
如何练习现在完成时
绘制一条时间线,左侧为 "past",右侧为 "now"。对于每个句子,标记该动作是一次经历、一个持续的情况、最近的结果还是未完成时间的一部分。
接下来,创建问题和后续对:
- "Have you ever taken a trip alone?"
- "Yes, I have."
- "Where did you go?"
第一个问题使用现在完成时,因为时间是开放的。后续语句使用简单过去时,因为它询问已完成的事件。
保留每周学习记录:"I have learned 15 new words. I have practiced speaking 4 times. I haven't reviewed conditionals yet." 此练习使用当前未完成时间段的时态。
常见问题解答
现在完成时是什么?
它是由 "have" 或 "has" 加过去分词构成的动词时态。它将过去的行为或情况与现在联系起来。
我可以将现在完成时与 "yesterday" 一起使用吗?
否。"Yesterday" 是完成的过去时间,因此使用简单过去时:"I saw her yesterday."
"for" 和 "since" 有什么区别?
"For" 引入一个持续时间,例如 "for 2 years." "Since" 引入一个起点,例如 "since 2024."
"have been" 和 "have gone" 有什么区别?
"Have been to" 通常表示有人访问过并返回。 "Have gone to" 表示有人仍在外出或正在那里旅行。
为什么美国人有时使用简单过去时和 "yet"?
非正式的美式英语通常接受最近发生的事件的简单过去时。当含义为 "up to now." 时,现在完成时仍然是最清晰的标准形式
当学习者用现在完成时讨论真实的经历和进步时,它会变得更容易。 CWC 的日常口语练习为学生提供了反复将语法与个人交流联系起来的机会。 Contact Columbia West College 了解更多信息。

