Which phrase is more grammatically correct?
1) I have been playing cricket for last 2 years.
2) I have played cricket for last 2 years.
English Language Learners Stack Exchange is a question and answer site for speakers of other languages learning English. It only takes a minute to sign up.Sign up to join this community
The first one, I have been playing cricket for the last two years. sounds better.
I think it's because the I have played and 2 years somewhat conflict. I have played makes it sound like there was some point in time that you played, but you're not sure of exactly when, or not specifying. So saying you did for two years doesn't sound quite right.
However, your meaning would still be understood perfectly.