I have been a doctor before
表示,现在之前,我是一名医生
before 表示before now,对话双方都清楚指的是现在以前,所以省去.
这是现在完成是的基本用法,表示现在之前的一段时间已知从事某事.
I had been a doctor before.
表示在过去某个时间节点前一直是一名医生.
一般需要时间节点清楚,否则容易引起歧义.
这两句话区别在与说话人的时间节点不同.I have been a doctor before 那现在到底是不是医生呢?I have been a doctor before 不能确定现在是与不是。是医生也可以这样说。现在完成时表示到说话时为止(或到现在为止)已经发生或完成了(不一定结束)的动作或状态。过去某一时间开始并一直持续到现在并且有可能还会持续的动作或状态。