This is the explanation from Oxford Dictionary
(for) long / (for) a long time
- Both (for) long and (for) a long time are used as expressions of time. In positive sentences (for) a long time is used:
- We’ve been friends a long time.
(For) long is not used in positive sentences unless it is used with too, enough, as, so, seldom, etc:
- I stayed out in the sun for too long.
- You’ve been waiting long enough.
Both (for) long and (for) a long time can be used in questions, but (for) long is usually preferred:
- Have you been waiting long?
- In negative sentences (for) a long time sometimes has a different meaning from (for) long. Compare:
- I haven’t been here for a long time ( = It is a long time since the last time I was here) and I haven’t been here long ( = I arrived here only a short time ago).
In general, I feel headache when reading it because it just says how to use it but does not explain why?
Can anyone explain this to me:
How are "(for) long" and "(for) a long time" different?
According to my study, it seems that "for long" seems for a short period of time like 4 or 5 hours, while "for a long time" seems for a longer period of time like 4 or 5 years.
But I am not sure.