「○○年前からずっと」や「○○前から」という意味を現在完了形の文で表したいときは,
<since+年>(何年以来)か<for+何年>(何年間)と表します。
sinceとagoを基本的には一緒に使うことができないため,たとえばsince three years agoとは言えません。
かりに,agoを使うのであれば過去形の文にします。
■現在完了形の文での「ago」
agoは過去の一時点を表す単語のため,基本的に現在完了形の文で使うことができません。
同様に,yesterday, this morning, last week などの過去の一時点を表す語句もそれのみでは現在完了形の文では使えません。
[例]
○ I have been in Japan for three years. (わたしは日本に3年間住んでいます)
× I have been in Japan last year.
■sinceとago
sinceのあとには「過去の一時点を表す名詞」がきます。
よって,<since+過去の一時点を表す名詞>で「~以来」という意味になります。
しかし,agoは「~前に」という副詞です。
ですから,<since+~ago>という使い方は基本的にはできません。
[例]
○ since yesterday(昨日から)
○ since this morning(今朝から)
× since three years ago
■現在完了形の文で「○○年前からずっと」と表す方法
たとえば「3年前からずっと」と表したい場合,「since three years ago」という使い方はできないため,
<since+年>(何年以来)か<for+何年>(何年間)と言い換えて表します。
または,three years agoを過去形の文にして表します。
[例]
「わたしは3年前から日本にいます」(今が2012年だとすると)
・I have been in Japan since 2009. (わたしは日本に2009年からいます)
・I have been in Japan for three years. (わたしは日本に3年間います)
・I came to Japan three years ago. (わたしは日本に3年前に来ました)
※この3つの文はほぼ同じ内容を表します。言い換え方を覚えておくとよいでしょう。