No it is not correct. John could say: "It was a long time ago." There are many other ways to say it.
Student or Learner
Tom- When did you cut your hair short?
John- It has been long.
Here John wants to mean that he cut it long ago and since then it has been like that, Is the italicised sentence correct?
Is it correct to say 'It has been so for a long time'?
Not a teacher.