a. I have learned English for 6 months.
b. I have learned English in 6 months.
Are the two sentences above grammatically correct?
Do they carry the same meaning?
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
Learn is what linguists call a 'telic' verb: one which in its basic use implies that its action moves toward and achieves a final goal, a 'change of state'. In the case of learn the 'change of state' is from ignorance to knowledge.
I have learned English for 6 months.
The construction for TIMESPAN is typically used with a 'non-telic' verb: one which in its basic use designates an activity which does not have a final 'goal' but continues indefinitely: I have lived here for six months. When a for TIMESPAN is used with a telic verb it usually signifies that the action was carried out repeatedly. For instance, She has written novels for ten years is taken to mean that she wrote a novel, and then wrote another novel, and then wrote . . . and so forth.
That is probably not what you mean. You may have learned a great deal of English, but you have not learned the entire language. (Neither has anyone else, including me!) I suspect what you want to say is that you have studied English for six months—study is a non-telic verb signifying the activity of attempting to acquire knowledge, not successfully completing the attempt.
I have learned English in 6 months.
In TIMESPAN is something quite different: it designates the time it took you to complete an action, and is used only with telic verbs. You might for instance say In six months I have learned enough English to ask intelligent questions. As before, however, I have learned English without any qualification implies that you have mastered the entire language; it would be quite extraordinary to achieve that in six months, or even six decades!