来 ThoughtWorks 两年了,英文使用也两年了,日常和工作中的交流几乎是没有问题,但是在说和写的时候总还觉得不地道,要么太啰嗦,要么说着说着逻辑就乱了,有时甚至感觉说英文像是在堆砌单词。最近补了一下英文语法,发现用错时态是我日常交流中最容易犯的错误,特此组织成文,方便日后查阅。

时态的定义

我们已经知道复杂句由简单句构成,简单句有主系表主谓主谓宾主谓宾宾补主谓宾宾(授予)五大基本句型。大部分情况下,名词(主语、宾语)由定语修饰限定,动词(谓语)由状语修饰补充,就构成了日常使用的大部分简单的句子。在简单句的构成上英文和中文并没有太大差别,只是英文句式结构更严谨,表达的内容也不会有太大差异。而之所以英文和中文的学习有很大的差别,时态是一个重要的原因。

时态就是表示一个动作发生的时间(tense)和所处的状态(aspect)

中文的动词侧重表意,也就是描绘动作本身,因此一个动词不管在何种语境下都是同样的说法同样的写法,因为他的含义是一样的;而英文中加入了时态的概念,在动词出现的时候就包含了关于这个动作“时间”和“状态”的信息,这也是为什么说英文描述比中文准确的原因,也是我们培养英语语感必须要迈过的一步。

  • “时”就是这个动作发生的“时间”。英语中把时间分为三类:过去现在将来
  • “态”就是这个动作在某个时刻的“状态”。动词共有四类状态,分别为:一般式进行式完成式进行完成式

把这三个时间四种状态分别作为横轴和纵轴就形成了十二类时态的表格:(过去将来这个时间比较抽象,放到最后单独讲)

过去 现在 将来
一般式 一般过去式
did
一般现在式
do
一般过去式
will do
进行式 过去进行式
was/were doing
现在进行式
am/is/are doing
将来进行式
will be doing
完成式 过去完成式
had done
现在完成式
have/has done
将来完成式
will have done
完成进行式 过去完成进行式
had been done
现在完成进行式
have/has been done
将来完成进行式
will have been done

只看表格里的中文名词可能比较难以理解,下面我们把每个时态带入具体场景进行理解:

一般式

强调动作本身,即只强调动作发生的时间,不强调动作的状态;也就是说说这句话的人只关心这件事发生在过去现在还是将来,而不关心这件事有没有完成。

  • 一般过去式: sb. did sth.
    • 表示过去的动作。I got up late this morning.
    • 表示过去的事实:Colubus discovered America in 1742.
  • 一般现在式:sb. do sth.
    • 表示事物现在的情况或状态,最典型的就是主系表结构,例如:I am a developer.
    • 表示经常性、习惯性动作,常伴随时间副词修饰:I never/often/always do sth.
    • 表示客观真理、格言,如: Time filies.
  • 一般将来式:sb. will do sth. 表示将来的动作、状态或是倾向。
    • Will 表示意愿时,主语是人;表预测时,主语是物:I will do this card tomorrow. This part of the code will become difficult to maintain.
    • Be going to + 动词原形,多表计划,主语多为人:I‘m going to have lunch.
    • Be about to + 动词原形,表示即将: He is about to leave for a meeting.

对于一般现在式和一般将来式一般不容易犯错误,而容忽略的往往是一般过去式,因为汉语中习惯在动词末加“了”字补充说明这个动作已经发生,而英文则是要在这个动词出现的同时就带出“已经发生”的信息,因此容易被忽略。像说“I breake the pipeline.” ,break 是一个瞬间动词,因此说这句话的时候必然流水线已经红了,就应该用过去式“I broke the pipeline”。

进行式

强调动作过程,表示正在做某事。

  • 过去进行式:sb. was doing sth.
    • 表示过去正在做某事:I was pairing with Eli when Luke called me.
  • 现在进行式:sb. be doing sth.
    • 表示现在正在发生的动作:It’s raining heavily now.
    • 表示即将发生的动作,通常表示“位移”短暂动词 come, go, arrive, leave, start, begin, return, die, take,此时 be 动词译为“即将”:We are going to lunch soon.
    • 主系表的一般态和进行态区别:主系表句型在口语中常表一般现在时,但如果强调此时的状态,可以用现在进行时。you are very rude! -> you are being very rude! 你现在的行为粗鲁,而不是你这个人。
  • 将来进行式:sb. will be doing sth.
    • 表示将来某时正在做的事情,强调对动作本身的描写,也是一般态的生动模式。例如:They will be arriving here tomorrow. 如果使用 arrive here 也可以,只是没有那么生动。

进行式容易忽略的一点是进行式只针对延续性动词,任何一个进行态的句子都可以改成一般态,但是一般态却必须是延续动词才能改成进行态。比如“结婚”和“开始”就是瞬间动词,中文中常有“他们正在结婚”,“比赛正在开始”的说法,而英文却不能用“They were marrying last week.” 只能说“They married last week.”,或者把“结婚”换成“结婚仪式”,成为延续性动词,用“They are having a wedding ceremony” 来表达正在进行婚礼。

完成式

强调动作结果,在表意中时间被弱化,因此很容易忽略时态中的“时”。

  • 过去完成式:sb. had did sth.
    • 表示截止到过去某时位置所完成的动作或经验的总结。过去完成时不能单独存在,要与另一使用一般过去时的句子或者表示过去的副词短语连用。had 译为“已经”或”曾经“:I had opened this feature toggle before last release.
  • 现在完成式:sb. have/has did sth.

    • 表示到现在为止已经完成的动作(发生时间不明确):DICE Team has completed the AMI upgrade.
    • 如果是延续性动词,表示持续到现在的动作或状态:(be 动词是可延续的)Cloud hosting team has been doing SSL upgrade for two weeks.
    • 现在完成时常用时间副词:

      - 自从... since + 时间点
      
      - 有若干时间之久… for + 时间段
      
      - 到目前为止... so far/up to now
      
      - 最近... recently/lately
      
      - 一次/两次/几次/多次... once/twice/a few times/many times
      
      - 过去若干年/月/日以来... over/during/for + the last/past + 数字 + years/months/days
      
  • 未来完成式:sb. will have did sth.

    • 表示到将来某时为止所做完成或仍然继续的动作或经验等。常与介词 by 构成时间状语连用,表示“到…的时候”,表示对将来这个时间点之前的一个或一系列动作的总结:By the end of this iteration, we will have finished work on the new brand.

这是一个充满“have/has”的句式,写邮件的时候很容易忽略三单,例如 Kira has done it before. 另外,就如开头说的,完成式强调的是结果的状态,因此时间会被弱化,因此要注意根据完成时间在现在时间的前后选择hadhave/has、或是will have

完成进行式

同时强调动作的结果和过程,是完成式的延续态,也就是说同样只适用于延续动词,且让这个延续的动作显得更生动,例如:I have work for this account for two years -> I have been working for this account for two years. 两句话意思完全相同,但是第二句更加形象生动。

  • 过去完成进行式:sb. had been doing sth.
    • 表达一直继续到过去某时,而当时仍然在继续的动作。过去完成进行时的句中必须有表示过去的时间状语:We had been tracing that bug for 8 hours before another team solved it.
  • 现在完成进行式:sb. have/has been doing sth.
    • 表示一直继续到现在,且可能继续下去的动作。通常和表示时间段的副词连用,如 for, since, all morning… Kelly has been working on this card for 28 days.
  • 将来完成进行式:sb. will have been doing sth. 一直持续到将来某时,且可能继续下去的动作多用于叙述性故事中,或间接引语中:He told me that by the end of this year he would have been working at ThoughtWorks for 5 years.

这个也算是很常用的时态,尤其是表示”这个东西我做了一段时间了,现在也仍在做的时候,要用现在完成进行式,同样注意第三人称单数。


过去将来时

除了以上提到的十二中时态,还有一个稍微特殊的时间叫做“过去将来”,指的是“站在过去看将来”,其用法与将来时只有一个差别,就是把“will”换成“would”:

  • 一般过去式:sb. would do sth.
    • 站在某个过去的时间点看将会发生的动作:He told me he would do it as quick as possible.
  • 过去将来进行式:sb. would be doing sth.
    • 站在某个过去的时间点,从这个时间点看一个之后的时间点(或时间段)正在发生的动作:He knew that I would be living in Melburne next month.
  • 过去将来完成式:sb. would have done sth.
    • 站在某个过去的时间点,对一个之后的时间点已经发生了的动作做总结:WaterStrong said he would have left for Sydney by the end of next month.
  • 过去将来完成进行式:sb. would have been doing sth.
    • 站在过去的某个时间点,对一个之后的时间点正在发生的动作做总结:I knew by July Jimmy would have been working there for 3 years.

在读书的时候会比较多出现这个时态,类比将来式的使用即可。

References: