what is the difference between these two sentences
The grammar tenses are different for both sentences.
“I haven’t seen him for three weeks.”
This sentence is in the (negative) present perfect simple tense. Present perfect simple is used when discussing something that happened in the past with a connection to the present. It’s formed by Subject + have/has + Past Participle
“I have been watching tv for 1 hour.”
This sentence is in the present perfect continuous tense. Present perfect continuous is used when talking about something that started in the past and continuing through the present. It’s formed by Subject + have/has + been + Present Participle