What are the differences between these clauses?

1.I learned English for 2 years.
2. I learned English in 2 years.
3. I have learned English for 2 years.
4. I have learned English in 2 years.

  • 1
  • One similarity they all have is being typical of someone who is not yet fluent in English. We study English, or we have been learning English; we do not say "I learned English in/for N years" unless we are stating that we are now fluent and have no further need of study. In that case, "in" would be the correct word, and we would use #2.
    – rcook
    Jul 26 '20 at 12:06
  • english.stackexchange.com/questions/66894/is-there-any-difference-between-present-perfect-and-present-perfect-continuous?
    – anouk
    Jul 26 '20 at 15:24

They could be slightly modified to make some sense

1 I learned English for 2 years

this would sound fine if followed by another phrase

I learned English for 2 years but then I stopped

2 I learned English in 2 years

This would make some sense if it referred to some standard

I learned English to level B2 in 2 years

The other two are more problematic

3 I have learned English for 2 years

This is incorrect, I have been learning English for 2 years might work well.

4 I have learned English in 2 years

This sounds quite odd and I cannot think of a simple modification to make it meaningful.

  • If it has taken you two years to learn English and now you are fluent, what would you say?
    – anouk
    Jul 26 '20 at 14:58
  • @anouk I have been learning English for 2 years. I would not make a statement that I was fluent because people have widely different definitions of fluency. If I had achieved a certain level in a public test I would just state that or give a statement about what I had done in practice.
    – mdewey
    Jul 26 '20 at 15:08
  • If you have been learning English for 2 years, you are still in the process of learning. That is not what I mean. In my example the learning is completed, after two years of studying.
    – anouk
    Jul 26 '20 at 15:23

Learn is problematic. I recommend using study. The difference between learn and study is that you can control which courses you take (study) and for how long, but you cannot control how well or when you internalize the topics you studied.

"I studied topic X for 2 years (as a teen)" means that you have stopped and are not doing it now. "For" is correct because you specify a duration and not a location. "I studied in Barcelona for 2 years", "I studied arts for 2 years"

"I have studied topic X for 2 years" imply that you continue to do so now.

If you really wish to state that you learned some skills in a topic as an achievement, you can say "I learned how to play golf like a pro in 2 years" or "I learned how to speak English like a native in 2 years". As mentioned by mdewey, this sentence makes more sense if you specify the achievement by a reference to some standard. In this case, "in" is correct because you did it (made the achievement) within the mentioned deadline.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .