A. 现在完成时表示一个过去开始的状态或动作持续到现在并可能继续持续下去,常同表示一段时间的状语连用。如so far, up to now, since, for a long time等。
--He has worked as a teacher for many years.
--Up till now, nothing has gone wrong.
B. 现在完成时表示一个过去发生的对现在仍有影响的动作或事件。常与不确定的过去时间状语连用,如yet, just, before, recently等;也同表示频度时间状语连用,如often, ever, never, sometimes, several times等;还可同包括现在时间在内的时间状语连用,如now, today, this morning等。但不能同特定的过去时间状语连用(last year , in 1997等)。
--I have never learned Japanese before.
--We have been quite busy lately (recently).
C. 在时间或条件状语从句中,当表示将来完成时的意义时,要用现在完成时来代替将来完成时。
--We’ll start at 5 o’clock if it has stopped raining by then.
--I shall go to see you when I have finished my homework.
Note: 行为不能持续的瞬间动词(Instantaneous Verb), 如arrive, begin, come, go, start, leave, die, join等通常不能用于这一语法意义,即该类动词在现在完成时中不能与表示一段时间的状语连用。
--He has joined the army for five years. (误)
--He has been in the army for five years. (正)
so far到目前为止 since 自从 before 以前 till now 直到现在already 已经just 刚刚