Is "I haven't seen him in months" a correct English phrase? And if it is, what's the difference (if there's any) between that and "I haven't seen him for months"?
- I haven't seen him for months
- I haven't seen him in months
The two sentences are equivalent as they are written here. However, the first sentence can be changed in a way that the second cannot:
- Whenever he finds a new hobby, I don't see him for months at a time. (good)
- Whenever he finds a new hobby, I don't see him in months at a time. (bad)
"For months" can mean any period of time that spans several months, regardless of when it takes place.
When you say "in months", you mean a period of time that is currently ongoing (or it abruptly stopped just now)
But your question's title asks a different question:
Do we need preposition “in” or “for” in a Present Perfect sentence?
No. A present perfect tense does not require "in" or "for". It very much depends on the words you are using.
- I haven't killed anyone.
- I have chopped down the cherry tree.
- Have I answered your question?
All of these are present perfect tense, but they do not need "in" or "for".