Learn English – “have been playing” or “have played”

grammarpresent-perfectpresent-perfect-progressive

Which phrase is more grammatically correct?

1) I have been playing cricket for last 2 years.

Or

2) I have played cricket for last 2 years.

Best Answer

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.