I haven't heard from John for a long time.
私はしばらくの間、ジョンから便りをもらっていません。
「haven't + 過去分詞」で「(ずっと)~していない」という意味になります。
・haven't は have not の短縮形です。
・現在完了<継続用法>の否定文です。
・「for ~(~の間)」「since ~(~以来)」などで期間を表すことができます。
同類の表現
I haven't seen you since high school.
あなたとは高校以来会ってなかったですね。
We haven't seen Kate since she graduated from college.
ケイトが大学を卒業して以来、私たちは彼女に会っていません。
I haven't smoked for over two years.
私は2年以上、たばこを吸っていません。
I haven't seen the secretary in the office for a few days.
2,3日、会社ではその秘書に会っていません。
I haven't been absent from work for two years.
この2年間、私は無欠勤です。