请教曹老师,我在你的一个回答中看到这个句子:I have often met him when I have been in London. 请问这个句子有没问题?假如没问题的话那样从句中用目前完成时说话的人此时在不在伦敦呢?假如不在的话那样主句表示的是说话人从过去持续到说话时的习惯性事件,如此句子不就挺矛盾么。
I have often met him when I have been in London.
I often met him whenwas in London.
你比较一下这二个句子。第二句主句用一般过去时,从句为确切的过去时间状语,表示在确切的过去一段之间中的习惯。说话人假设或认定听话人是了解自己在伦敦的具体过去时间为什么。
第一句的时间状语为不确切的过去时间状语,即说话人以前在伦敦呆过一段时间,具体是哪一年哪月听话人是不了解的,也是无关紧要而不必提及的。在这段不确切的过去时间存在的习惯,就不需要一般过去时,而用目前完成时表示。所以这个句子的目前完成时并非表示从过去持续到目前的习惯,而是不确切的过去时间的习惯。所以,这个句子是正确的,虽然如此的句子不多见,语法书仿佛也没类似的例句。但你依据时态的用法原则,应该可以推理出句子的意义的。