I want to know clearly the usage of ''for years'' and ''for many years''.How do they differ? E.g. I've known him for years. I've known him for many years. Which one is correct and why?
Both are correct and both imply that you have known the person for a long time. "Many years" is simply more descriptive and specific.
The correct one to use is dependent on how long the time period the years refers to. There are no hard and fast rules with regards to how long a time period is before you should use one or the other, but I feel that for any time period less than 10 years I would use for years and anything beyond that I would use for many years. However, you would rarely be wrong for using for years to refer to a long period of time.
One thing to note is that depending on the age of the speaker, the period of time each phrase refer to can be longer or shorter than that. For instance, someone in their 70s or older might use for years to refer to a period up to 20 or so years, as the proportion of their life that the time period represents is smaller than someone younger.