英语中各时态的主要用法总结
不强调动作发生的时间,通常用于描述习惯、事实等。
I go to work every day. 我每天去工作。
He works in finance.他在金融业工作。
The train leaves at 9:30 tomorrow morning.火车明天早晨9点30分发车。
用法1:用来描述说话时正在发生的动作。
John is sleeping at the moment. John此时正在睡觉。
用法2:用来表达未来安排。
We ’re flying to Spain tomorrow.我们明天去西班牙。
用法1:用来强调动作在过去已经完成了。
I ’ve lost my pen. 我的笔丢了。
用法2:用来表达动作在过去的某一时刻开始,并且目前仍在进行,此种用法下句中通常包含介词for和since。
She has been here since 8 o’clock.她从8点就一直在这。
I have lived in Italy for many years.我生活在意大利很多年了。
用法1:用来表示从过去开始的动作一直持续到现在(还可能继续持续下去),强调动作持续的时间。
I ’ve been writing for over an hour.我已经等了一个多钟头。(目前仍在等待)
用法2:表示动作是最近发生的。
That bag looks new. Have you been shopping ? 那个包看起来很新,你最近购物了吗?
He hasn’t been sleeping a lot lately.他最近一直没怎么睡觉。
表示一个动作在过去发生过,如果是持续性的动作则表示该动作没有持续到现在。
She worked in finance before this job. 在这个工作之前,她在金融业工作。
We lived in China for six years after I graduated from college.我大学毕业之前,我们在中国生活了6年。(目前不在中国生活了)
强调该动作在过去的某一时刻正在发生,可以理解为“当时正在”。
I was reading a book when they arrived.他们到来时我正在看书。
Were you sleeping when I called?我打电话的时候你当时正在睡觉吗?
强调动作在过去的某个时刻之前发生了,通常与一般过去时联用,可以理解为“当时已经”。
The movie had already ended when I turned on the TV. 我当时打开电视的时候,电影已经结束了。
强调工作在过去开始,并且在过去的某一时刻或者另一个动作开始的时候仍然处于持续状态,可以大致理解为“当时一直”。
When I arrived at the bus stop, the other people there had been
waiting for nearly an hour. 我当时到达公交站的时候,其他人已经等了快一个钟头了。(当时一直在等,我到公交站之后依然继续等)
Had she been living in Italy for a long time?她当时在意大利一直住了很长时间吗?
He had been feeling unwell, so he went to lie down.他当时一直觉得不舒服,所以他去小睡了。
强调动作将来发生。
The Queen will be in Rome tomorrow. 女王明天在罗马。
I think it ’s going to rain tomorrow.我认为明天会下雨。
强调动作在将来依然会持续,无论该动作发生在过去、现在和将来。
You shouldn’t call their house now; they will be sleeping .你现在不应该给他们打电话了,他们睡着了。(目前处于睡觉的状态,将来依然会持续)
We won’t be leaving until the evening.夜晚到来之前我们不会离开。
用法1:强调动作持续到将来的某个时刻或者在将来的某个时刻完成,通常用来描述动作从发生到完成持续的时间,可以理解为“将来已经”。
By October we will have lived in this house for 20 years.到十月我们就在这个房子住满20年了。
After this next race, I will have completed 10 triathlons.这场比赛之后,我就完成10场马拉松了。
用法2:预测某事应该已经发生了。
You will have heard by now that the company is going bankrupt.你应该已经听说公司破产的消息了。
用法1:描述动作一直持续到将来的某一时刻并且有可能会继续持续下去,通常用来强调动作持续的时间。
She ’ll have been waiting for nearly an hour by the time we arrive.在我们到达之前,她还得等接近一个钟头。
How will he have been coping on his own for all these years? 往后这些年他自己一个人怎么办?
用法2:用来描述可能造成的某种结果的动作,表达一种预测。
He won’t have been sleeping for very long, but I have to wake him up.他不会睡太长时间,但是我不得不叫醒他。
I bet he’ll be hungry because he will have been studying straight through lunch.我打赌他会饿的,因为他会在午饭期间一直学习。
1.句中出现确切时间的时候,不能使用现在完成时。
不能说 I’ve lost my keys yesterday .
只能说I lost my keys yesterday .
但是可以说I have got three classes on Monday.不过此用法不正式。
2.在对话中,现在完成时有隐含的“刚刚”的意思。
A:Why are you late?你为什么迟到?
B:I’ve lost my keys.我刚把钥匙弄丢了。
He’s taken the dog to the park.他刚去公园遛狗了。
I ’ve had lunch. 我刚吃完饭。
而这意思非常相近,大部分情况下可互换。
I have been living in New York City for three years .
I have lived in New York City for three years.我在纽约住了三年。
下面这个句子只能用现在完成进行时,因为句子中提到的while I finish my Ph.D这个阶段,需要live动作一直延续。
I have been living in New York City while I finish my Ph.D.
不能说:I have lived in New York City while I finish my Ph.D.
表达动作持续的时间时,而这意思不同。
He has talked on the phone for almost an hour. 他几乎打了一小时的电话。(已经打完了)
He has been talking on the phone for almost an hour. 他已经快打了一小时的电话。(目前还可能在打电话)
下面这个例子用现在完成进行时更恰当:
A: “Let's take the longer trail when we're hiking back down.” 我们远足回来的时候绕一下更远的小路吧。
B: “But we have walked for three hours!”但是我们已经走了三个小时了!
B: “But we have been walking for three hours!”但是我们已经连续走了三个小时了!(这样回答更能体现动作持续的时间,而且能强调说话时还在进行)
现在完成进行时还可以表达“已经一直”:
I have worked in the shop for three years.我已经在这个商店工作三年了。
I have been working in the shop for three years, but I hope to find something else soon .”我已经一直在这个商店工作三年了,但是我最近希望找点别的事情做。
现在完成进行时还可以表达最近发生或者完成的动作:
Don't you think Mary has been spending too much time on the computer lately?” 你不认为Mary最近在电脑上花了太多时间了吗?
即使动作没有持续到现在,如果想强调“一直”也可以使用现在完成进行时:
Sorry I'm so sweaty! I ’ve been exercising all morning. 对不起我出了很多汗,我早晨一直在锻炼。(此刻并没有在锻炼)
My neighbors are angry because my dog has been barking .我的邻居们很生气因为我的狗最近一直在叫。(狗此时可能没有叫)
以下是几个现在完成进行时的例句:
I have not been writing much recently.我最近没怎么写作。
She hasn't been trying to find work since her divorce.她离婚之后没有一直尝试找工作。
Where have you been living lately?你最近一直住在哪?
Has she been feeling OK?她最近还好吧?
Why have you been lying to me?为什么你一直对我撒谎?
Haven't you been writing a new book?难道你最近没有在写新书吗?
Has she not been feeling well?她一直感觉不太好吗?
Why haven't they been working on their homework?他们为什么一直没写作业?
下面是一些使用过去完成时的例句:
When I turned on the TV , the film had ended . 当我打开电视的时候,电影已经结束了。
Unfortunately, he had not taken his keys before he left the house.不幸的是,他当时离开家的时候并没有带钥匙。
当句中出现when的时候,一般过去时和过去完成时表达的意思不同:
Mary cooked dinner when the kids came home. 孩子们到家的时候妈妈做晚饭了。(意思接近于孩子到家之后,妈妈才开始做饭)
Mary had cooked dinner when the kids came home.孩子们到家的时候,妈妈已经做好晚饭了。(孩子到家之前,妈妈已经做好了)
当句中出现before或者after的时候,因为这两个词本身表达了两个动作的先后顺序,不需要过去完成时,使用一般过去时也可以:
I packed a bag of snacks before I left for the airport. 我动身去机场前带了一袋零食。
I had packed a bag of snacks before I left for the airport.
换成过去完成时也可以,但是没有必要。
过去完成时与否定副词可以使用倒装,多为书面写法,有夸张的意思:
Never had I felt so alive. 我从没有感觉过这么有活力。
Never had she imagined that love like this could exist.她从没想象过这样的爱情可以存在。
以下两个例句分别为过去完成进行时和现在完成进行时,意思稍有不同:
She has been waiting for over an hour for him to arrive.为了他的到来,她已经等了一个多小时。(现在还在等)
She had been waiting for over an hour for him to arrive.为了他的到来,她当时一直等了一个多小时。(现在没有在等)
使用过去进行时的动作要比过去完成进行时的动作时间上要近一些,过去完成时可以表达“刚才”,“刚刚”,过去完成进行时一般表达“最近”。
My eyes were tired because I was working on the computer.我的眼睛当时很累因为我那会在用电脑工作。
My eyes were tired because I had been working on the computer.我的眼睛当时很累因为我最近一直在用电脑工作。
两种时态意思几乎一样,稍有不同的是将来完成时强调动作的完成,而将来完成进行时强调动作的进行:
By the time I get there, she will have waited for over an hour. 等我到那的时候,她还得等一个多小时。
By the time I get there, she will have been waiting for over an hour.等我到那的时候,她还得 一直 等一个多小时。