现在完成进行时表示的结果是直接的,现在完成时表示的则是最后的结果。现在完成进行时有时有延续性,现在完成时没有。现在完成进行时表示动作在重复,现在完成时不带重复性。现在完成进行时比较生动,有时含有明显的感情色彩,而现在完成时往往只说明一个事实,一种影响或结果,平铺直叙,没有什么感情色彩可言。
(1) 现在完成时可以表示一个已经完成的动作,而现在完成进行时则表示一个正在进行的动作:
I have read the book. 我读过这本书。
I have been reading the book. 我一直在读这本书。
注:有少数动词(如work, study, live, teach, stay等)在表示持续一时间时用这两种时态含义差不多(只是用现在完成进行进更强调动作的持续性):
How long have you worked [been working] here? 你在这儿工作多久了?
I’ve lived [been living] here since 1988. 自1988年以来我就一直住在这儿。
(2) 现在完成时通常只陈述事实,而现在完成进行时还可表示一种感感情色彩:
I have waited for two hours. 我等了两小时。(陈述事实)
I have been waiting for two hours. 我等了两个小时。(等得好辛苦)
(3) 现在完成进行时通常用来谈论较短暂的动作或情况,若要谈论时间延续较长的动作或情况或永久性情况,则通常用现在完成时:
He has lived in Paris. 他(一直)住在巴黎。
He has been living in Paris. 他(目前)住在巴黎。(表暂时性)
(4) 不用于进行时态的动词通常也不用于现在完成进行时,但它们可以用于现在完成时:
I’ve only known her for two day. 我认识她刚刚两天。
(5) 现在完成进行时不用于被动语态,若要用可用现在完成时的被动语态代替:
The house has been painted for a month. 这房子已漆了一个月。